you can use set angle instead and use this expression.
Sprite.Width < 0 ? angle(Sprite.X,Sprite.Y,touch.X,Touch.Y)-180 : angle(Sprite.X,Sprite.Y,Touch.X,Touch.Y)
That will fix the issue when it's flipped.
To explain what it does:
It's a conditional expression that checks the width if it's negative, then sets the angle to -180 if that's true, and sets angle to regular if it's false.
But the easiest way is to not flip the arrow, unless you really have to.
Just disable the flip on the arrow and it will work.