Intermittent issues are tough to resolve as you are experiencing. And while part of a shotgun approach, this check does not require buying new parts: checking and cleaning the MAP sensor. Let me explain:
We all understand that these marine engines do not have intake air filters, instead a spark arrestor. While it may appear to be like a filter, we tend to forget it’s not. And while on the water there is not a need for a filter, the wearing down over time of the serpentine belt creates a ‘dust’ that will pass right thru the spark arrestor and given enough time will also deposit on the MAP sensor. Debris on the sensor will cause it to respond differently at different throttle settings and behave sporadically.
Suggest do this simple check: pull the sensor and check it for debris and even if none found, clean it. Be sensitive for the ‘how to’ clean > you can damage it so google on how to clean them. This whole process can be done in 15 minutes with the boat still on the water, so you will know right away if that was it. And if not, well was only 15 min and the cost of a can of MAP sensor cleaner.
PS: the spark arrestor will eventually build up debris from belt wear as well as other ‘dirt’ > thus cleaning it should be on the annual maintenance program. I soak mine in a bucket of warm water with some Simple Green and periodically agitate it while doing all the other preseason checks. Then thoroughly rinse and dry using compressed air (low pressure) + sitting in the sun.