Thanks for the suggestions.
Using PIR1.5 I am getting some response but it only works once in the loop.
Below is my new simplified loop for testing.
I am sending the data from the PC myself manually so there is no barrage of data for it to deal with. You say the PIR1.5 is set to 0 after reading (HSERIN?) but is the buffer also cleared or is there an instruction for that?
I thought the buffer held more than 2 characters. . .
Basically all I want to do is for the PIC to read the buffer constantly, perform one of 3 routines depending on the character "a" "b" "c", then go back to the loop and start reading for another character.
Any advice appreciated. Thanks

loop:
vbin = 0 ' reset VBIn
pause 1000
mybuzzer = 0
if pir1.5 = 1 then ' suggestion from forum, character in buffer
hserin [vbin]
sound mybuzzer,[60,10]
hserout [vbin]
Endif
goto loop