Also, der Bootloader arbeitet so, dass er die Vektoren "Reset" und "Interrupt" durch je ein Sprungbefehl (bzw. beim Reset durch die Abfrage, ob der Loader oder das Hautprogramm gestartet werden soll) ersetzt. Wohin genau, das kann ich dir ohne SRC nicht sagen (bzw. Doku gucken).

Alles was du dann machen musst ist statt "org 0x00004" und "org 0x00000" die betreffenden Adressen einzusetzten und dafür zu sorgen, dass kein Sourcecode auf die von dem Bootloader verwendeten Programmspeicher abgelegt wird.

Ansonsten würde ich dir Raten, die cblock VOR den Programmcode zu legen, erleichtert das Lesen und niemand kommst auf die Idee, dass es sich dabei um definitionen für den Programmspeicher handelt. Das gleiche gilt für die includes, die meist ganz am Anfang des Programmes stehen, gleich nach der definition des Prozessors.
Am Einfachsten ist, wenn du die vorgefertigten Templates verwendest, da ist auch ein schönes Layout vorgegeben, das das Lesen ("Microchip\MPASM Suite\Template\Code").

lg
Mobius