Yes, an SLC-5/0x controller should keep the user memory in RAM for as long as the battery is good. The modular controllers like SLC-5/01,02,03,04,05 also have a capacitor that can hold the RAM memory for days or weeks.
If your controller is clearing its memory at each power cycle, and no EEPROM is loading an empty program, then both the battery and capacitor have failed and the CPU needs to be replaced.
Any program that runs in a 5/01 will run in a 5/02 or 5/03 as well because they have the same (or larger) instruction set and memory, and a DH485 network port.