You don't need to sum in the stored proc, though you could. Just create a temp table of all of the product groups, then have a column for currentBud, NextBud, NextNextBud and use update to fill in the data. (names are for example, but hopefully you get the idea).
When the data is returned to the report, the report can do the summing...or you can create a temp table from what you have now, then create a temp table of what you want to return (as described above) then you could update the data with something like
update #return
set (columns for current month) = (matching columns)
from #return
join (select SUM(column you need1), SUM(column you need2), ProdGroup from #currentDataLayout where (date range is correct) GROUP BY ProdGroup) ss ON ss.ProdGroup = #return.ProdGroup
Hope this helps.