The data memory (called FRAM) that the SAVE_EEP and LOAD_EEP commands access is separate from the DM[] and A-Z variables. There are 6000 memory locations available that are addressed from 1 to 6000. Refer to chapter 1.7 of the F-series user manual for more on program and data memory.
You can load values from FRAM into the A-Z variables using LOAD_EEP when the PLC first powers on and then save them using SAVE_EEP whenever the A-Z values are updated. One example is as follows:
C = LOAD_EEP(311)
SETHIGH16 C,LOAD_EEP(310)
H = LOAD_EEP(313)
SETHIGH16 H,LOAD_EEP(312)
Your code looks good, but you can change the save_eep commands at the end to store all 4 DM[] values as follows:
c=c+32768
DM[301]=GetHIGH16(C)
DM[302]=(c)
h=c/3600
DM[303]=GetHIGH16(h)
DM[304]=(h)
SETLCD 1,1,"HOURS = "+STR$(h)+" "
save_EEP DM[301], 310
save_EEP DM[302], 311
save_EEP DM[303], 312
save_EEP DM[304], 313