Hi @Rebecca N,
You may have already tried this, but one way to achieve what you are after is to add a couple of 'helper' columns next to your Primary Column that return that row's Parent and Grandparent values.
Then in the Report, use the Group option to group the records/rows first by the Grandparent column, then second by the Parent column.