My motorhome sits outdoors, and the painted aluminum roof collects stains that soap and water will not remove. My fiberglass boat also has the same problem.
The best product I've found is JoMax. It is an exterior house cleaner product that you mix with bleach (follow instructions on the jug of Jomax). Buy the jug of JoMax, not the hose attachment spray bottle. Spray the mixture on the roof using your pump up garden sprayer, let it sit for about 5 minutes, and scrub with a boat deck brush or hit it with the pressure washer.
I wet down the motorhome sides before using the product on the roof and don't seem to have any bad results on the sides. I do have a full length roof gutter on each side of the motorhome.
Fred