What you need to do is whenever you set your enemies direction, also assign it to a variable. For example in my games, when an enemy is moving to the right, I set an instance variable "direction" to "forward". If the enemy is moving to the left I set "direction" to "backward". My event for pushing the enemy should check to see if the direction of the enemy is "forward" or "backward". Then you can adjust it's position accordingly. For example if it is "forward" then to push it back I have to subtract from vector, if it is "backward" then I need to add to vector.
Hope that makes sense...
The enemy in my example file does have an instance variable set up for movement. It's simply called "Dir." It looks like this:
Enemy > Dir = 0 > Enemy: Simlulate Platform pressing Right
Enemy: Set Not Mirrored
Enemy: Platform has wall to right > Enemy: Set Dir = 1
Enemy > Dir = 1 > Enemy: Simlulate Platform pressing Left
Enemy: Set Mirrored
Enemy: Platform has wall to left > Enemy: Set Dir = 0
It seems like the problem I'm having is coming from the player's direction, but I'm not sure. I basically need the enemy "pushed" in the direction the player is facing regardless of what direction the enemy is moving.