I think if I merge the Enemy and EnemyAnimations into one object, the same object will both be rotating, and playing an animation, which means when moving left the animation will be upside down, etc
If I just put them both in the same family, I'll give all the EnemyAnimations a lot of behaviors they don't need, not to mention it still doesn't solve the problem of associating each Enemy with its respective animation sprite (I think? I've been using Construct 3 for a week.)
Anyways, I sort of found of a solution, and I don't know why it works, but it does.
I gave EnemyAnimations their own family instance variable also called Facing, and make it update to Enemies Facing value every tick. That way the Event to set the animation reads the Animation Sprite's .Facing value, instead of the .Facing value of the Enemy. Pretty ugly, but it works for now. Hopefully I can bundle it all up in a black box and never have to touch it again.