After speaking on the phone last night, I believe we figured out what he was seeing. The M6 end macro saves the current position and returns there after the tool change.
After he homed his machine, the first time he ran it, it returned to machine 0,0,0 because that's where it was after he had just homed it. On subsequent tool changes, the machine wasn't at machine 0,0,0, so it appeared to behave differently.