Avrdude verification error when trying to upload a sketch to an Atmega328P-PU

I tried to program an Atmega328P-PU with a leonardo board and the ArduinoISP script (changed RESET from SS to 10 and LED_HB from 9 to 13) and got the blink sketch on it.

The problem is that when I try to upload a sketch for the second time after burning the bootloader, it won't work anymore. To burn the Bootloader, I used the Atmega_Board_Programmer sketch by Nick Gammon, I select the Uno bootloader there (because I installed an external 16MHz crystal with 2 22pF capacitors to GND).
Then I can upload a sketch with this programmer:

arduinoasisp.name=Arduino as ISP
arduinoasisp.communication=serial
arduinoasisp.protocol=arduino #stk500v1
arduinoasisp.speed=19200
arduinoasisp.program.protocol=arduino #stk500v1
arduinoasisp.program.speed=19200
arduinoasisp.program.tool=avrdude
arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed}

for once, but when I want to upload another sketch, it throws a verification error, for example:

avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.38s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0002
0x5c != 0x5d
avrdude: verification error; content mismatch

avrdude done. Thank you.

and that problem goes away when I reburn the bootloader. And I can't add new programmers to the Arduino IDE anymore.

Push