Thank you very much for your in depth explanation pylon. I now totally understand how and why the Adruino works the way it does.
I do also feel that the KVM I have has a very very simple USB host interface.
Seen as using an ICSP programmer is far from reach for me I have a different approach in mind.
If I salvage a purpose built keyboard and have this keyboard connected to the KVM, then use one of the output pins from my Arduino to control a transistor to make the physical connection for the UP Arrow Key on the keyboard. This way the KVM will receive a real key press from a real keyboard.
Do you think this method will work?