Can't some of this be patched at the USB driver level in the OS? A storage device shouldn't be acting like a keyboard, etc.
The device acts like a USB hub which happens to mount both a keyboard and a USB drive.
So unless you ban all USB hubs then this isn't workable.