your numbers look about right.
In your example with USB the battery is almost full but is still being charged with 14mA as indicated by GetBatChargeCurrent(). And those 14mA are going into the battery (positive) as indicated by GetBatCurrent(). If you keep USB attached and wait for the battery to be fully charged isCharging() will go to 0 (false).
W/o USB the battery now is being discharge with 88.5mA (the minus sign indicates energy going out of the battery). And obviously w/o USB the battery no longer is being charged, hence GetBatChargeCurrent() is 0 and isCharging() is 0 (or false).
Which value(s) are not what you'd expect?