If the lights are flickering the way you say they are, it sounds like a programming problem. My wild guess:
Your program has a pair of case blocks or if/then statements. One decides whether the Spike should be set REV or OFF. The other decides whether the Spike should be set FWD or OFF.
Prove me wrong.

Show us your code.