I see that your timing cycle is pretty short. You need to be careful to avoid conflicts in the various data transfers throughout the CPU, but I see that you have a large number of registers prepared for this. One problem with memory cells currently is that it takes 100 steps to write a zero to a non-empty memory cell.
I am accounting for that in the registers. They should be ready by or before the cycle they are needed at.
And your timing circuit has some problems. One thing I discovered when building my computer's clock was that pumps do not turn off instantly when their power is cut. That is bad. Plus, because of the 100 step delay for pressure plates to reset, most of the time when your circuit is in operation, 2 pressure plates will be active. My clock used some null cells to hold the water while the active pressure plate reset.
Actually, I constructed and tested my timing system. I have a save, and can provide a video if you want. However, just to state, there is never more than one pump on at a time, and the pumps only activate for about 6 steps total. The key to the timer is that the plates are on when empty and the gears controlling the pumps are pre-toggled to invert this signal. This is the reverse logic that most people expect, however, it is easily accounted for by pre-toggling whatever the signal coming from a stage goes to. Gears are beautiful things. To give a run down of how it works, I'll take it step by step.
Step 1: Finish building that timer assembly, including linking the pressure plates to pre-toggled gears for the control circuit. All pump gears are off because there is no water in the system yet. Also the power itself is off.
Step 2: Fill timer cell 1 to 7/7 water. The gear for the next pump in line is engaged, but is still providing no power because the power itself is off.
Step 3: Turn on the power. The first pump moves all the water into the next cell. Cell 1 plate turns on, immediately turning off the first pump.
Step 4: After 100 steps, plate 2 turns off. This turns pump 2 on, draining cell 2 into cell 3. Pump 2 then immediately shuts off.
Step 5: After 100 steps, plate 3 turns off. This turns pump 3 on, draining cell 3 into cell 4. Pump 3 then immediately shuts off.
Step 6: After 100 steps, plate 4 turns off. This turns pump 4 on, draining cell 4 into cell 1. Pump 4 then immediately shuts off.
Step 7: After 100 steps, plate 1 turns off. This turns pump 1 on, draining cell 1 into cell 2. Pump 1 then immediately shuts off.
Step 8: This continues until we pull the power lever and no pump is capable of getting power. Unless the power is lost at exactly the right time, water stays in the cell it currently resides in.
Now obviously there is some potential for the timer to get one cell ahead of stage 1, though I think it's about a 1 in 100 chance. The key to dealing with this is my NOP instruction. That will be the instruction that is always first in the Instruction Register after power is turned on, so if the system starts after time cycle stage 1, all it does is a null operation, causing the timer to resynchronize and then start from memory address 0.
I think I'll figure out how to upload my timer video. Be right back.