DoIf these "hundreds of polygons within the boundaries of a single building" retain the ID of the original building polygon? If yes, then you can sum these areas grouped by building ID (either via SQL in QGIS DBManager or just by exporting it to a CSV table and doing it in a spreadsheet).
As for the area of the original building roof, you can add that to your shapefile's attribute table with something like this.
If your original buildings shapefile doesn't have an unique ID, you can create one.