Or it's working as design with MPASM, but have problem with PM, but... ya never know.

Do yourself a big favor, isolate the problem, keep the ISR and a simple short and sweet main loop, see if the problem's still there.

Usual Convention: Keep the ISR as short as possible.


Get rid of PBP interrupt and use ASM one, or DT.

Maybe not a bad idea to make sure you're using the latest MPASM version.