The other possibility is the proram you are placing in the PIC is overwriting the final address location. When these PICs are tested before leaving the production line, the OSCCAL value is saved in the final address as 'xx' in a 'movlw xx' instruction. The final address is also the reset vector. When reset or powered up, the PIC runs this instruction then moves on to the next address which because it is at the end of memory rolls over to address zero where you program would normally reside. So when your program starts up at address 0, it already has the OSCCAL value stored in the W register. You don't have to use it but for best calibration you would start the program by loading the value into the OSCCAL register and so calibrate the clock speed.
The error you are seeing is because the value the Pickit is seeing at the final address is not a 'movlw' instruction. Either you erased it or put somethng else in it's place. A real Pickit 2 has the ability to measure the clock frequency and produce a new value for calibration. You should note that the error does not stop the PIC working, it's just cautioning you that the speed may not be very accurate.
Brian.