If your firmware doesn't store values you modified after flashing, for example using Repetier's option "Firmware EEPROM configuration", you probably didn't define EEPROM setting in Marlin.
To do this you have to uncomment the option in Marlin's Configuration.h:
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
// M500 - stores parameters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
//define this to enable EEPROM support
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
#define EEPROM_CHITCHAT // Please keep turned on if you can.
Check that the lines #define EEPROM_SETTINGS and #define EEPROM_CHITCHAT are both uncommented (i.e. defined)