In QGIS I can suggest using a "Virtual Layer" through
Layer > Add Layer > Add/Edit Virtual Layer....
Let's assume there are ten features in 'multiple_polygons' (yellow), and three in 'catchment_zones' (grey) accordingly, see image below.
With the following Query, it is possible to achieve the result
ROUND(st_area(c.geometry), 2) AS "catch_area(m*m)",
ROUND(SUM(st_area(m.geometry)), 2) AS "mult_area(m*m)",
COUNT(m.geometry) AS "num_mult",
ROUND(SUM(st_area(m.geometry))/st_area(c.geometry)*100, 2) AS "area_%"
"catchment_zones" AS c
"multiple_polygons" AS m
ON st_intersects(c.geometry, m.geometry)
The output Virtual Layer will maintain the original geometry and some initial attributes including several new, namely
"catch_area(mxm)" (in square meters),
"mult_area(mxm)" (in square meters),