Hi Joanne,
I know of a way to do it, using a custom (calculated) field.
If you are not familiar with calculated fields, you just need to add the field on a project custom form, give the field a suitable name (e.g. ProjectEOS) and use the following in the calculation box:
CONCAT(Name,"-",EOS Code)
Once this is applied to your projects and has produced a concatenation of the Project Name and EOS Code, you can then group by this field.
So, to get your desired two level grouping, you would group by Portolio and then by this calculated field.
I am not aware of there being any pure reporting-based solution to combine two groupings into one but am interested to hear if there is.
Hope the above helps anyway :)
Regards, David