Is the sender in the tank the right one? The gauge reads off of the resistance sent from the sender.
So for example, if the gauge has 60 ohms for empty, and 0 ohms for full then you need a sender that has the same specs.
That's what it sounds like to me... maybe the wrong sender.
You may need to bent the rod that holds the float to the guage. I've had to do that before to get them to read right. Take the sender out, hook some jumper leads to the terminals, and try moving the float to see where it registers. You can then bend the rod to make it read right.