I used to not know so much about how USB works, but I've learned a lot recently, mostly specifically related to HID as I've been troubleshooting this issue. I'm sniffing the raw USB packets with wireshark to learn how things work.
As I said, you CAN do this with a lower filter driver. Assuming you understand USB, it's not all that much code.
I've already taken a similar approach with success in Linux by following this nicely documented example: libevdev.pages.freedesktop[DOT]org/udev-hid-bpf/tutorial.html#modifying-the-hid-report-descriptor I had hoped to be able to do a similar thing in Windows (not much code there either, I just needed to learn the workflow).
The manufacturer uses a custom driver for the hardware. Part of me wonders if they're purposefully shipping firmware with three missing 0xC0
bytes in order to break the generic HID driver to force users to use their special driver for some reason; because like you said, it makes so much more sense to do a super simple fix in the firmware than to do all this custom driver work!