When you say "cycles from hot to cold", I'm guessing you mean every few seconds, right? One possible reason is this: When you are hooked up to city water, the pressure remains fairly constant. When using the pump, the pressure drops to a preset level, then cycles on to build it back up. This repeats as required. Due to the cold and hot water pipes being routed differently (the path through the water heater is probably much longer), the water pressure may be building faster for the cold water than for the hot. Your shower head should have a valve of sorts that shuts down, but does not completely turn off, the water while you're lathering up, and helps maintain both the pressure and the hot/cold mix temperature. If you don't already do so, try doing this and see if it helps: Turn on the water and adjust for the right temp. Get wet and shut of the water at the head (it will still dribble slowly). Lather up a portion of your body. Turn the shower head back on to rinse. Turn back off, and repeat as necessary. This is how most of us do it without any hot/cold problems.
Another possible problem is that you have lost the 'head' in the water heater. That is the quantity of air that is retained in the water heater tank, but after a period of time, it gets absorbed into the water. Try this: Shut off the water pump, open the water heater access door outside and locate the tank drain plug. Remove it, and water will start to drain out. Now operate the lever on the temperature/pressure safety relief valve near the top. Water will start flowing out the drain hole faster, and air will be sucked inside. Drain about 1 gallon total. Release the lever and replace the drain plug. Don't forget to use new Teflon tape on the threads.
If you still have problems, get back to us and we'll try to see what else it could be. Good luck!