If it isn't mechanically worn out, the sender *can* be repaired.
The sender on my '98 hadn't worked right for 6-8 years; I just hadn't had the desire to drop the tank and fix it. Finally, I had the need to drop the tank (fix a rotted brake line), and had to replace the module (got a '97) due to more rot, then frankenstein some parts of the old ('98) on to the new ('97)--including swapping the resistor plate--because the modules aren't exactly the same.
Drop the tank (or raise the bed) and remove the tank module. Clean all the black guck off it, especially on the screen and in-basket filter.
Remove the sender unit. Note whether the pivot has worn out completely. If so, you'll have to address that problem; the sweeper arm won't work too well if the whole thing can swing away from the resistor plate. Carefully disassemble the sender. Remove the resistor plate with great care; there are (IIRC) 4 little tabs that hold it in place. Clean the plate thoroughly. Use an ordinary non-abrasive rubber pencil eraser to clean the contacts. After doing this, my sender *almost* worked right. But there were still a couple intermittent dead spots.
Now address the copper sweep arm that contacts the plate. Bend it carefully so that it resembles:
That is, carefully put a gentle U bend in it. Do NOT make the bends sharp. The 'U' need only be about 1mm tall, as you only need to move the contact point about 2mm. This will pull the contact to a difference arc on the resistor plate. Make sure the sweep arm is otherwise straight and true and still extends as low as it did before.
Now, after years of erratic fuel gauge needle and (near the end) really annoying DING! each time the gauge jumped to empty (which was very frequent near the dead spots), the needle is smooth and the gauge is just as accurate as it was when I bought it new in '97.