USB Keyboard send too many bytes?

Hi Guys,
I am working on a project to get an old ZX Spectrum to work as a USB keyboard. I am using a Pro Micro and have it mostly working. When I plug it into a normal computer or a Raspberry PI it works perfectly. However, inside the Fuse emulator it doesn't work at all. Although if I bring up the menu using the function key on a "real" keyboard it does work then (ie. I can arrow around or select a letter for a menu item). When I used the Commodore 64 emulator Vice I could get a character to appear about 2% of the time.

I have used a USB sniffing program and it says that when I press an 'a' on a "real" keyboard I get:

Pipe Handle: 0x1232bf38 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
 00 00 04 00 00 00 00 00                           ........

BUT the Arduino sends:

0
Pipe Handle: 0x12ba20b8 (Endpoint Address: 0x84)
Get 0x9 bytes from the device
 02 00 00 04 00 00 00 00 00                        .........

So the best I can guess at the moment that difference is the problem. What do others think? If it is the issue how can I fix it?
Thanks!

I still have no solution to this! As far as I can guess the 02 at teh start might be discriminating between the various USB devices that the Micro can be? Is this correct? If so, is there anything I can do to stop it sending that for the purposes of what I am trying to achieve?

Thanks for your help!

Can anyone direct me to where the code is that outputs those codes so I can see if I can get rid of that leading 02?