Der Brenner geht davon aus, dass der Baustein Code-Protected ist, wenn er immer 3FFF rückliefert.
Selbiges liefert er aber rück, wenn die PGD oder PGC-Leitungen nicht richtig angeschlossen sind... oder aber wenn MCLR nicht richtig passt...

Überprüf daher mal deine Spannungen während des auslesens oder löschens: MCLR muss 13V haben, VDD muss 5V haben, auf PGC muss ein Taktsignal sichtbar sein und PGD muss die Daten enthalten (letzteres ist aber etwas schwierig ohne Logic-Analyser festzustellen)...