I don't know what your problem is, but it may help to check that the appropriate ACPI events are being delivered. You should see a "battery" event periodically when the battery is discharging. Check /var/log/acpi to verify. In Gnome, the battstat-applet relies on these events to update the charge indicator. You should also examine the /proc file system to see if the needed information is there. Here's what I have on my system:
$ cat /proc/acpi/battery/BAT0/info
present: yes
design capacity: 4400 mAh
last full capacity: 4400 mAh
battery technology: non-rechargeable
design voltage: 12605 mV
design capacity warning: 1000 mAh
design capacity low: 400 mAh
capacity granularity 1: 100 mAh
capacity granularity 2: 100 mAh
model number:
serial number:
battery type: LiOn
OEM info: Sony Corp.
$ cat /proc/acpi/battery/BAT0/state
present: yes
capacity state: ok
charging state: charging
present rate: unknown
remaining capacity: 4400 mAh
present voltage: unknown
$
Some fields are incorrect, but the critical fields for computing percent of full charge are correct. They are "design capacity" and "remaining capacity". Check that they are updated periodically and accurately on your system. I don't know what you can do, if you discover a problem here. :-(
I wrote up what I had to do with regard to ACPI support on my system:
http://www.zvolve.com/~garry/lappy.html