I think I fixed that by modifying the action to store the data even if it didn't hit anything, making the gameobject change to null... I think.. I'll have to look at it when i get home.
I also have a variable for lastTouched, so when i store the new gameObject for highlighting I can go ahead and store it, jump to the highlighting state, send a message to highlight the lastTouched object, then send an event to the newTouched gameobject... Might be confusing, but I basically needed to maintain a difference in two variables, the one thats turning on and the one thats turning off.