Is there a way to preserve EEPROM contents in AVR Atmega when burning a new firmware to flash with avrdude?
Before reflashing any Atmel AVR MCU you need to erase it. Erase procedure by default clears FLASH, EEPROM and lock bits. There are 2 ways to solve your issue:


Read EEPROM, erase all, program all including your backed-up EEPROM.
Set EESAVE fuse bit. In this case EEPROM will not be erased during Erase procedure. But you will need to clear this flag some day later if you want to clear and/or reflash EEPROM.