It could be that the animation frames of your enemy sprite are not uniform size. If you run in debug you can see that when the collision marker is collided with and your sprite is animating, then it triggers the change of the 'IsLeft' instance variable more than once. Hence, it looks like a bug and not colliding, but it is working correctly.
If you look at Ashley's platform tutorial, you'll see he advocates using a uniform sized invisible dummy sprite that has the behaviors assigned to it, and the animations are just then pinned to it. That way, collisions should trigger exactly, and not get confused by the animations.