If the floats are bad and gettin fuel inside them, they will not read full, as they will not float. I would be more inclined to say the circut board, or the arm that rubs against the board is bad as the OP stated that it reads ok untill it reaches half full then drops to empty.