You are maybe confusing DATA protection with CODE protection. CPD (bit8) in the CONFIGURATION WORD protects the EEprom data area NOT the FLASH program area. The FLASH program area is protected by clearing bits 10-13 in the CONFIGURATION WORD.
Have you got code for a 627A but are programming a 627. Microchip changed the config settings between the 2 versions and the code protect bits are different. Your config value should start with a 0 for code protection to be on.
The firmweare was written for the 628 and I was using it on the 627- even with setting the config on the programmer- it wasnt playing ball. I tried again onto a 628 chip and everything went perfect.