If it runs well when the tank is full but starts having trouble as the tank level drops I would suspect an air leak between the tank and the fuel pump. When the tank is full the pump doesn't have to lift gas very far and the leak is minor. As the gas level in the tank drops the suction required to lift the gas increases and the amount of air that gets in due to the leak increases.
If your fuel filter is between the tank and the pump then it could be the source of the problem, either by providing the leak or if the filter was clogged. I would certainly start with the filter, replacing it just as a matter of principle.
If the filter looks okay then inspect the fuel line carefully. I have created a problem by accidentially stepping on the fuel line as I worked on the boat and the resulting yank tearing the hose where it goes into a fitting.