My 1997 Grand Prix does the same thing. After it gets below about 1/3 of a tank left, the thing never shows correctly, often showing full or near full. If I am driving, I can put it into neutral, turn the car off, turn it back on and it will usually show the correct amount, but only for a few minutes.
The guage in my Pontiac is probably the same one that is used in your Buick. I haven't bothered with fixing it, because I'm sure it probably would be rather involved. Since I'm the only one that really drives it, I keep track of the miles on the tripometer and I know when it's getting low.