First, thanks a lot for sharing this project!
I noticed that the Arduino device always shows up as a battery with 0% charge when testing in Windows on a laptop that already has a battery.

Work-around
It appear to be possible to work around this problem by disabling the real battery device in Device Manager:

The remaining Arduino battery then afterwards shows up with correct charge:

ASK: It would be great if the device could show up with correct charge also on multi-battery setups. I'm not sure, but have a feeling that this can be achieved by tweaking some HID parameters.