Arduino Leonardo ETH with KVM Extender

I have searched high and low for more information on my issue so this is my last resort:

I am using an arduino leonardo eth hooked up to a few buttons to emulate some keyboard presses.
Everything works as intended when I plug the arduino directly to the computer through USB.

There is a remote station also hooked up to this computer. I don't know too much about them but it is a KVM extender, specifically a draco vario.

When I try to plug the arduino up to this KVM extender, the computer does not recognize the device as being plugged up at all.

The arduino gets power, the button LEDs light up when pressed, and my code seems to be running. The computer just doesnt register any input from my button presses.

Other HID-compliant devices plugged through the extender work just fine.

I have tried using a powered USB hub to eliminate any "not enough power" issues.

Looking up the extender's information on the website, it claims to work with HID-compliant keyboard and mice.

So my question: is the leonardo truly HID-compliant? I am using the Keyboard.h library (which includes the HID library inside of it) that came with the software. When the device is plugged in, does windows treat it as an HID device, or does windows have to jump through special hoops to get the arduino to behave as an HID device? It seems my extender will only pass through signals from USB devices that are HID-compliant and I'm thinking that is my issue. Am I implementing the code wrong?

Your code is correct. Leonardo does not send the same device descriptor as a USB HID keyboard. It uses Interface Association Descriptors. IA descriptors confuse old versions of Windows and BIOSes and embedded devices such as IP KVMs.

It is possible to get plain old USB HID keyboard descriptors but it requires lots of changes to Arduino core files.

This applies to Zero and Due as well.

Here is what USB HID keyboards send.

Bus 002 Device 100: ID xxxx:yyyy
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0xxxxx
  idProduct          0xyyyy
  bcdDevice            2.80
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1

Here is what a Pro Micro device descriptor sends.

Bus 006 Device 003: ID 1b4f:9206  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x1b4f 
  idProduct          0x9206 
  bcdDevice            1.00
  iManufacturer           1 SparkFun
  iProduct                2 SparkFun Pro Micro
  iSerial                 3 HIDFG
  bNumConfigurations      1