So you noticed it...
Duh, the only way that could get more obvious would be if you added a big neon sign saying "DID YOU SEE THAT?!"
Game feel is a
big thing, expect to spend like 25-30% of your dev time fixing 'feel' issues you discovered in test playing. (Feel issues can arise from tons of sources, too... everything between physics, level design, and music choice can cause things to feel kinda off)
instead of changing their x and y, change their hspd and vspd or whatever you've named your horizontal and vertical speed variables.
This usually works by making either a seperate state that handles knockback or actual knockback that requires an implementation of friction inside your movement code.
I'd recommend having a separate pair of speed variables just for knockback, then you can knock enemies back without messing with the direction their AI is making them move in. (Proper use of parenting makes this more manageable - the parent would handle everything, but run an "my_ai_script" using
script_execute() when it's not in a special state like being knocked back; that script is set in the create event of the child objects, and thus different between each enemy type... this lets you make the behaviour of special states like knockback and status ailment be the same for each enemy without duplicating code in thousands of places)