OK so I seem to have figured out why my USB keyboard (g15) was disconnecting and reconnecting. It hasnt done it since I turned off the HPET (High Precision Event Timer) option in bus overrides. Apparently the HPET was doing something screwy as thats the only option I've changed and it seems to be working fine now.