Hi @javola1227 - We use a report to do something that's pretty close to what I think you're describing.
In our scenario, the report is part of a dashboard on the program level - so it dynamically filters to include the projects in that program. However, the same concept should work with a report level filter that could limit to projects A, B, and C from your example.
Below is a screenshot of some test data (so the data looks a little weird). For this view we're grouping projects based on a project level custom data field. Then we use a filter based on a task level custom data field to determine which tasks we're showing in the summary view.