You could update the table creation to get the datatype of temporary table directly from the source instead of the hard-coded types/sizes. This would be easily done with:
SELECT RowText, ColumnText, Value FROM Source WHERE 1=0 INTO #Aggregates
Which works because the 1=0 clause insures no rows are matched, but the datatypes are set according to the soruce...