So when you program and it does not work, can you read back the hex from the chip and see the information ? How do you select the programmer when you load an old hex? Is that the same way as you load a new hex? Are you sure your programmer is using the correct COM port when called by MCS ? Same programming software in both instances ? Have you tried saving the new hex and then loading it the same way as the old hex? I am just throwing out some troubleshooting ideas, no answer required.