For the older firmware I use older Arduino as I get errors sometimes with the newer versions. I use Arduino 1.0.1 or 1.05
When flashing I load the firmware in arduino each time... as in... close arduino, then open it, then find the malin.ino fresh each time.
When I load a new firmware on reboot of the board, On the LCD I navigate to Restore Failsafe then Store Memory and I do this every time.
Same as if I do a change in say Motion I always Store Memory
I find if I follow this ritual every time I have way less issues.
One other this that had caught me in the past. I never edit in arduino or save in arduino. I use a seperate editor like Crimson Editor (now Emerald Editor http://www.emeraldeditor.com/ ). This has also stopped me from having issues with arduino and firmware. Good thing about this editor is you can leave it open (just save) as you write firmware, so it makes it nice and easy to follow where you are upto when doing lots of tweaking and lots of uploading.