Ok so this has become a pain.
I have put every pic16f628a and pic16f88 I have (about 20) in my kitsrus programmer and erased them, program memory, data memory and fuses.
Then if I put them in the pickit2 its happy and will program them, but if I then either try to verify the code or re0program them the pickit tells me it doesnt recognize the chip.
My programs have the data and program code protect off.
If I program the chip with the pickit after erasing it with the kitsrus first and then put the chip in the application it runs the code, so the pickit does program the devices, but only if they are erased first.
Reading the chip with the kitrus after the pickit has progammed it confirms that the code protect bits are disabled.
Thepickit does sometimes come up with a low supply voltage and low programming voltage warning, so I'm suspecting its dying.
The only other change is that I'm using a zif socket addon for the pickit instead of icsp, I have however used the zif socket before without this trouble.