Yo, para programar pics uso el HiTech en C pero dentro del Mplab, de tal forma que con dicho programa consigo el hex. Una vez obtenido el hex, para programar el pic lo hago con el Icprog o con cualquier programa que lo pueda cargar a través del puerto serie, una vez que al pic le has cargado un bootloader. Actualmente uso el Tiny, de muy fácil programación. Tan sólo conectar el puerto serie del pc al pic y, con el bootloader cargado, descargal el hex al pic en poquísimo tiempo. Con el Icprog lo programa con un conector idc10 y el programador Jdm pero el tiempo que tarda en hacerlo es infinitamente superior que con la opción anterior.
Espero haberte sido de ayuda.
Saludos.