es sencillo, lo primero que tienes que hacer es colocar el codigo de borrado al final de la memoria, ya que si borras el "borrador de flash" se quedara el programa pillado y puede que no se borre todo.
para borrar tienes que borrar por sectores, dependiendo del pic algunos van por 64bytes, otros por 32, 16... eso ya lo debes mirar en el datasheet
y hacer esto:
TBLPTR=sector que quieras borrar;
EECON1bits.EEPGD=1;
EECON1bits.CFGS=0;
EECON1bits.WREN=1;
EECON1bits.FREE=1;
EECON2=0x55;
EECON2=0xAA;
EECON1bits.WR=1;
en TBLPTR debes escribir la direccion de memoria (es un registro de 24bits), como borra de sector en sector tienes que apuntar a cualquier direccion del sector, es decir si quieres borrar el primer sector, y tu pic borra de 64bytes en 64bytes, poniendo en TBLPTR cualquier numero desde el 0->63 borraras ese sector, para el sector 2, cualquier numero entre 64->127...