You didn't say if the GFCI was installed before or after all of this was going on.
What I would do is check the temperature of the GFCI Breaker when it trips.
If it's warm, there's your problem. Wiring at the GFI isn't tight enough. (This is what happened with the terminal block inside the controller - loose connections caused it to melt.
http://spasupport.com/electrical/main/burnedwires.html
If not, then I'd proceed this way....
1. Power off.
2. Measure from RED (L2) to GROUND at the Control Box, with ohms on HIGHEST Setting (>200K). You should get almost no response.
3. Measure from Black (L1) to Ground. Same thing.
Depending on the brand of gfi, you may read the same thing from white (neutral) to ground in the control box. If you do get a reading, then disconnect the neutral power line coming into the spa pack, and check between the spa pack neutral and ground. You should get a reading of infinity.
4. Do a similar check between the heater terminals and ground. If you read ANY continuity between the terminals and ground, then you've got some defective heater elements, (possibly been manhandled or bounced around in the back of a truck for a while?). Note this check needs to be accomplished with the element immersed in water, and preferably sometime soon after the breaker has tripped.
5. If all above check good, then use an ac ammeter around the black (L1) and measure the amount of current draw.
Same with L2 then Neutral.
If you don't find any 'errant' readings, then try it with the o3 generator unplugged.
Lemme know what you find out.