I forgot to read that it's an RPG game you are doing, however, you can learn something from my comment here for that too.
First of all, try to set run animations to "start at current frame", always. Also, remove the duplicate "simulate right movement", 1 is needed only.
There are a number of ways you can do what you want to do in construct, however for example if I want to make a side scroller and make it switch animations depending on movement and inputs, I would do this:
Above I just use the Invert option on the event, checking if the player is MOVING or NOT. If he is moving, set animation to run and start at the current frame, if he's not moving, set to idle and start at the current frame.
Why I highlight the current frame part is because if you set it to play for beginners, the construct will call this function whenever a player is moving, so you don't want the animation to repeat, in your case, you could just change it to "start at current frame" and it will prob work.
For the mirrored sprite, all you have to do is check input, so if the user clicks the left arrow, mirrors the sprite If the user clicks right arrow, un mirror the sprite, the same solution goes for up and down movement, etc.