You have 500mS delays before your interrupt can even be processed. Unless someone
presses & holds a button, it may be quite a long time before you enter your interrupt
handler.

Reduce your pause times by using a loop with PAUSEUS until your 500mS delay period
expires. Then you only have a few uS before PBP will jump to your int handler, and you
can read the whole port in the first line, save it to a variable, then make a decision on
which switch was pressed.