You can review28. Memory Programmingand see what the individual bits do.Unused (not programmable) bits tend to read back as 1, hence the result being different.
AVRISP2 + Arduino IDE = waste of time in my experience and not a reliable solution.
after programming the extended fuse is not 0x05 but 0xDF, why is this ?
I'm assuming that doing the main hex file first or doing the fuses first makes no odds ?
what about the lock bits ? these are rarely mentioned in tutorials but some do.