Had the same problem on our `99 Beneteau 352. I found that the fuel gauge circuit works on the principal that a higher (full) reading results from increased resistance in the circuit. The sending unit inside the tank creates more resistance as the float rises with more fuel.
To eliminate the sending unit as the problem -
With the key on, disconnect the two wires at the sending unit. The gauge should be pegged hard right beyond full.
With the key on, connect the two wires at the sending unit together. The gauge should be pegged hard left beyond empty. If this doesn't happen, you have an open somewhere in the circuit.
The sending unit should have 10 ohms resistance when empty; 180 ohms when full. I went to radio shack and a 10 ohm, 100 ohm and 200 ohm resistor(s). I connected these in place of the sending unit to confirm that the guage was reading correctly. (vs. pulling the sending unit from the tank) With the 10 ohm resistor, the gauge should read empty vs. pegged hard left.
In the end, I had cleaned all the connections and found that I had a connector crimp that had gone bad at the sending unit end of a wire. The connector was still attached to the insolation on the wire but the wire strands had broken inside. I replaced the connector and confirmed gauge readings with the resistors.
I'm still not certain that the sending unit provides accurate data but does seem that the tank takes the correct amount of fuel when the gauge is reading a 1/4 tank.
Make sense????