Hard to keep straight which ones have 1 and which have 2 relays.
Given the additional code for the main power relay, I think you're having an issue with power getting to all parts of the engine power box. Which would also explain the lack of spark. Could also be a grounding issue in that same area. My suggestion is to use a meter and start checking you have 12V at the right places in the engine power box. At the fuse locations is a good place to start. You can also check the fuses are good more thoroughly with them removed. By check their resistance with a meter.
With a fuse pulled out you should have 12V on one side of the fuse connection. With the Relay's pulled out, you should have 12 on one of the 2 relay coil pins. The other relay coil pin goes to the ECU and will be pulled to ground by the ECU when it wants to energize the relay. That pin may float somewhere between ground and 12v when the ECU is not trying to energize the relay and will be very close to 0V when the ECU is trying to energize the relay. Such as during starting.
Where you attach the negative lead of the meter can help determine if you have a grounding issue. It's best to initially use the negative terminal of the battery. If everything reads correctly using that ground point, then do the measurements again using the engine block as the ground point. If that reads correctly, then repeat a 3rd time using a ground point somewhere inside the power box. Without being at a boat to look, I can't really remember where to find a ground point inside the engine power box. But if there is an obvious ground bar, then that's a good place. If the reading change as you change your ground point. Then there is a problem with the ground where you get different reading. A couple of tenths of a volt difference is ok. More than that indicates an issue.
Just to make sure, you have checked that the safety lanyard / switch is ok? I don't think that'll cause the relay open engine codes, but it will kill the spark.