This is a tough one and you might not be able to do it the way you have it set up.
If you can group by Donor first, there's no problem.
I can think of two ways to get all of the categories from a single donor to list under your group:
1. (preferred method) Add a second copy of the table with the donation information. (When you select a table that's already in the report Crystal will automatically rename it for you with "_1" at the end.) So, assuming the table name is Donations, link from Donations to Donations_1 on the field(s) that identify the donor. Group on the Category from Donations and use the data from Donations_1 for the detail data.
2. Use a subreport that contains the donor table and links on the field(s) that identify the donor.
However, this doesn't prevent the donor's information from appearing twice. You may be able to create an array variable to track the donor ID information and then use it to suppress the section(s) for any donor who's already in the array. I haven't really worked with arrays in Crystal, so I'm not sure how to tell you to go about doing that, though.
-Dell