Fix it:
You might try fiberglassing it from behind first, and then bondo-ing.
Bondo doesn't last forever, but will smooth it over for painting. Tape/cover anything you don't want fiberglass/bondo on.
---------------
Replace it:
An alternative would be to find a rust free sunroof and cut it out from a wrecked car, allowing about a 2" border.
If you want a different look, seal/glue down the new sunroof opening
over the old hole, and pop rivet it about every 1 1/2".
If you get the new sunroof, I can show you how to do the replacing.-Bob