PIC18 problem with flash programming
Your question is way too broad to give a definitive answer to.

If you just dumped the HEX file to the micro without debugging, then you should have read back the same data.  If you programmed the device from inside MPLAB, then various MPLAB settings could have overridden the data in the HEX file.  If you did this in debug mode, then MPLAB pretty much has to override the debug bit.