Hallo theborg,
mit Bootloadern habe ich nichts zu tun, aber eines ist unverändert, ob mit oder ohne Bootloader:
Adresse 0x0004 wird bei jedem Interrupt angesprungen; das ist im PIC16F877 hardwaremäßig so vorgegeben.
Da solltest Du keinen Sprung nach Main haben, sondern einen Sprung zu Deiner Interrupt-Service-Routine, oder ein RETI.
Wie der Bootloader die Adressen 0x0000 bis 0x0003 belegt oder benötigt kann ich Dir nicht sagen. Das wirst Du aber gewiss noch herausfinden.