Existem várias maneiras de atualizar seu código para um microcontrolador.
Na web, você encontrará muitos programadores criados por eles, mas eles geralmente também têm software criado e não são (bem) integrados no MPLAB IDE.
A solução mais barata da Microchip é um PicKit por ~ 40 €, que é apenas conectado ao PC via USB. Embora o PicKit tenha algumas opções de depuração, também existe o CDI 'In Circuit Debugger' mais poderoso por ~ 180 €, que possui mais recursos de depuração, mas é claro que também pode exibir os chips.
Eu sempre senti que o PicKit é suficiente para mim.
Existem versões de terceiros por aí, pois o microchip publica firmware e esquemas para o PicKit, mas se você os comprar, verifique se realmente consegue o que pensa. Uma vez vi uma oferta para o PicKit 3, mas não tinha certeza se não era um PicKit 2.
Apenas como comentário: Existem Microchip MCUs, que podem ser atualizados. Por exemplo, usamos a família PIC18F2450 / 2550/4450/4550 com USB incorporado e colocamos um carregador de inicialização nele. Quando um jumper é fechado, o MCU entra no modo do carregador de inicialização na inicialização, e você pode fazer o flash do seu MCU com o seu código. Esse material está disponível na Microchip.
Para usar isso, você precisa de algumas modificações no seu código. E, é claro, você precisa de um programador regular para fazer o flash inicial do carregador de inicialização no MCU. Portanto, esse recurso não faz sentido se você tiver um programador. Mas é bom se você deseja atualizações de firmware para seus clientes.