One fiberglass repair trick might help you in this situation would be if you can identify another piece of roof that has the same curvature - for example, the area in front of or behind the hole, if it doesn't have awkward things like roof hatches in it.
If there is another piece of clear roof, then wax that and laminate a thick mould (sorry, 'mold') from that - say 6" bigger than the hole size. Grind the edges of the original roof to a taper. Remove the mould and position it over the hole, using the thinnest-possible double-sided sticky tape near the edge of the hole, plus some weights to hold it down. Now laminate over the hole and onto the surrounding original roof.
Getting the wet fiberglass to stay in place is tricky, so you are likely to be limited to applying single layers of fiberglass and letting each one cure. You can wet out the fiberglass downhand on a sheet of plastic and then lift the plastic and fiberglass into position. Roller it into place and oh so carefully peel away the plastic before the fiberglass gels.
This gives you a near perfect exterior surface once the mould is removed - just some filling and fairing at the join. But overhead laminating is very messy - one layer will
drop off, however careful you are....
Plan B is to use the mould to make a repair panel, taper its edges, fix it in place and then apply fiberglass tape across the joints. Probably a better way. Hold the repair panel in place temporarily with bolts through the joint and big fender washers either side to clamp the repair panel to the original roof. Once the repair panel is tabbed into place, take out the bolts and make good.