I had a problem with the gauge staying on empty despite the tank being full when my car ('95) was new, long, long ago. Took it to the dealer under warranty and the technician told me it wasn't all that uncommon a problem. Strangely enough the solution he gave didn't involve the gauge or the sending unit or anything like that, it was merely to remove a fuse (can't remember if it was #11 or #31 or whatever, but obviously it did have something to do with the gauge) and leave it out for 10 minutes. Reinsert, and then check to see if the needle on the gauge has moved. Repeat if necessary.
Sounds crazy, but it worked for me, and haven't had the problem since. Now your problem may be different given the description you've provided, but you may wish to give this a try.