It is always best to look at the source.
Check the manual for the HARDWARE.
If it states that the erased byte(s) output something different than what the software outputs, then the software (you are using) is either not designed for that microcontroller, or the software contains bugs, and therefore you need a new version.
The easiest way to tell is to remove the chip from the programmer socket, and make a fake chip and plug it in. Assuming the programmer has no chip detection circuitry, use a voltmeter and connect the grounds together, and connect the +ve output from the voltmeter to the socket a data pin from the uC (microcontroller) would normally go.
Now run the programming software and tell it to erase the chip. You might have to do this 8 times (one for each byte).
For each byte you test, watch the voltmeter. If the display shows a number greater than 1, then the software has sent a 1 to that bit.
Start with D0, and go all the way to D8 (or the highest bit #).
you will eventually get 8 readings. then you can construct a binary number. D0 is always the low value.
For example: If the last 4 tests showed 5V, and the first 4 showed 0V, then you will have:
11110000
The later test results are shown more to the left, and the first results are shown to the right.
Now take the binary number, and convert it to hexadecimal. In this case, it is F0.
Check the value against your uC manual. If it is wrong, then either the software is bad, or the programmer (hardware) is improperly translating the signals received from the computer. The former is more likely to happen than the latter.
Good luck