Your detectors are flawed.
Move the enemy one grid space closer to the hero and it will work. If you have an even number of gridspaces between the two then you will get a proper collision, but if you have an odd number then you won't because your detectors are passing right over their targets.
Anyway, try checking for overlap at offset before moving. You don't need detectors at all for this.
Yeah, it only works if I move the enemy 1 space closer to the hero like you said. I'll play around with it some more to see if I can make it work all the time.