I need a little help.

I've been working on DYI CNC for several years with lots of interruptions. Before the last break the machine seemed to be working well except I was having issues with the Y-Axis alignment. After several months I finally had a new Y axis built that is true. Upon installing the axis, I noticed issues with stalls and chatter on the Y-Axis. This turned out to be a loose wire, the bane of all DYI projects. After fixing the issue, I could move all axes with keyboard commands easily and to any position on the machine. However, when I clicked on the Ref All button, only the Z and Y axes moved to home while the X just sat quietly with the DRO showing movement. Frustrated, I switched to MDI mode and issued some G code commands to move all of the axes simultaneously. Encouraged that the machine always responded to the commands, I loaded a G code file that I use to calibrate the table for levelness and motion accuracy. After manually homing all axes I clicked start. Everything was working as expected moving to several measurement locations, then the Z failed to descend to the measurement height. On the next command, it retracted at the rapid rate and continued on as though nothing was amiss, except that the Z was now .50 higher that it should be. After several more successful measurement moves, the Z repeated the non-descent issue followed by another .5 retraction then continued to process all commands as expected. I finally had to cancel the job because of repeated Z descent issues that were moving the Z too close to its home location.

I'm running Mach 3 on XP Pro using ESS with separate BOBs, X & Y on one BOB and Z on the other. My ultimate goal is to use one of the Step/Dir outputs on the second BOB to control spindle speed. I have no idea where to go from here being a newbie with CNC and with Mach3. The fact that all axes respond to keyboard commands tells me the Mach3 is working. What might I be missing to get Mach3 to function consistently? Maybe something in the ESS plugin configuration?