hi Paul,
It will not be recognised as a keyboard, it doesn't work that way, its recognised as a Generic device, which means it could be any device that wants to exchange data with the PC, using HID USB.
I would use a delay between USBservice calls, say about 50mS or 100mS, this will keep the connection active, so loop around PORTA and PORTB every 100mS and send a Report to the PC every 100mS
You could use say, r1(7) with Bit 0, set to a 1, when a new key is pressed and set to 0 when not.
In that way you could use 'handshaking' between the PIC and PC when new Key sent and then PC to PIC, data read OK, so clear r1(7)....etc
Eric