Lo que buscas se llama USB bootloader.
Basicamente lo que creas es un programa que se le llama Bootloader, el cual SI o SI lo grabas con el Pickit, de alli ese programa, al comenzar el micro pedira la actualizacion, si no se le envia nada, entonces pasara al programa normal, este programa ocupara una posicion de memoria distinta del bootloader. Ya que es necesario borrarlo. Asi que estaran en distintas paginas de la memoria Flash.
Te sugiero que busques codigos realizados, no tiene ningun sentido estar haciendolo, lo que si vas a encontrar muchos son bootloader por UART, el cual te serviria si tenes un integrado USB/Serial