The engine needs 3 things in order to run correctly, it needs compression, timed spark ignition, and the proper ratio of fuel to air.
Compression isn't something that changes, you either have it or you don't, so that won't be the issue. The engine is either not advancing the ignition timing (if it's not advancing it won't make power) or it's starving for fuel.
What I would do if you brought this to me is first duplicate the problem. Then, when it's not making full power I would check to make sure the timing is advancing as it should by hooking up a timing light to the engine, and then snapping the throttle a few times and see if the timing advances or not. If it doesn't advance.... If this engine has points ignition the weights are going to be frozen up from rust. If it has electronic ignition, the ignition control module (which is what controls timing advance) is going to be bad.
If the timing is advancing.... Then it is going to be a fuel problem. The next step would be to hook up a fuel pressure gauge between the pump and carb, and run the boat. Fuel pressure needs to be 3 to 7 psi at all times. This test is going to be pass or fail, you will either have fuel pressure or you will not.
If fuel pressure is low - The very next step is to get a portable tank and hook that up to the fuel pump and see if pressure comes back up or not. If it does, there is a problem with the boats fuel tank. You will want to check the tank for signs of trash, inspect the fuel lines to see if they are collapsing, and then see if the tank has an antisiphone valve on it (and if it does, replace it)
If fuel pressure is still low on the portable tank - The fuel pump is weak.
If fuel pressure is good, then the problem is going to be inside of the carb. I know you said you rebuilt it, but if you do the above testing and get this far with no result, the problem is still going to be inside of the carb. It's either still dirty, or the float is hanging up a little bit. Does that all make sense to you?