Assuming the sender unit in the fuel tank is the float-arm type (240-33 ohm) which I use on my rib which has Yamaha electronic gauges;
The calibration is generally done by setting the length (and sometimes shape) of the control arm on the sender unit to suit the fuel tank.
Assuming the correct sender unit is fitted in the tank in the first place... I would start by checking the electrical connections on the sender unit, if these have corroded then they could cause a false reading on the gauge. (Quick, easy & cheap fix)
It is also possible the sender unit is a little worn or in some way has become damaged and therefore causing the arm to stick and give false readings.
If itís possible, it may be worthwhile siphoning ALL the fuel out of the tank into jerry cans, and if your tank has a 100L capacity (for arguments sake) then refilling the tank with 25L (quarter full), 50L (half full), etc etc, and seeing if the gauge matches the amount of fuel that is actually in the tank.
Hope this helps