Try this in your report sheet:
=ArrayFormula(TRANSPOSE(QUERY(FILTER({Data!B2:B,Data!I2:I},COUNTIFS(Data!C2:C,Data!C2:C,ROW(Data!C2:C),"<="&ROW(Data!C2:C))=1),"Select Col1, SUM(Col2) WHERE Col1 Is Not Null GROUP BY Col1 LABEL SUM(Col2) '' FORMAT Col1 'mmm yyyy'")))
This should deliver the full report with one formula.
If you believe that you will ever have months between the earliest and latest months that have no entries listed, but you want to include those months with a zero sum in the report, then use this version:
=ArrayFormula(TRANSPOSE(QUERY({FILTER({Data!B2:B,Data!I2:I}, COUNTIFS(Data!C2:C,Data!C2:C,ROW(Data!C2:C),"<="&ROW(Data!C2:C))=1); EDATE(Data!B2,SEQUENCE(DATEDIF(MIN(Data!B2:B),MAX(Data!B2:B),"m"),1)),SEQUENCE(DATEDIF(MIN(Data!B2:B),MAX(Data!B2:B),"m"),1,0,0)},"Select Col1, SUM(Col2) WHERE Col1 Is Not Null GROUP BY Col1 LABEL SUM(Col2) '' FORMAT Col1 'mmm yyyy'")))