it's a matter of programing style i guess. i would minimize things i do in interrupt handlers as u may have timing / re-entrant issues if u do too much there.
i would suggest also turn off timerA1 and rely only on your led to diagnosis the problem. your timerA1 is clocked at 500Khz u said and can easily run into your port2 interrupt (ps/2 clk at about 20khz). (check datasheet and see who has higher priority).
also it looks like your port2 interrupt is not disabling / re-enabling interrupts while servicing them. it's timing critical so u don't want any unnecessary blocking otherwise u will miss the beat readying from the keyboard.
both timerA1 and port2 access your queue. i did not examine it in detail but generally u would want to have some kind of locking.
well, not sure if my input can help. yours a big project and i don't have the h/w hook-up.