The character design is awesome. Sad thing about the bug, though.
If you suspect the bug is in your animator (as you pointed out in another comment), then you might want to check out what properties you're animating. If you're animating the position or rotation of the game object, then you might want to know that the animator saves like a default value and it will snap back to that position if your animation is looping. There's two ways to handle this (as far as I know):
The first one is to check "Apply Root Motion" in your animator, depending on how you've set it up. This basically makes the motion happen additively instead of at set positions, so if your animation moves the character 10 points in X, it will go 10, 20, 30, instead of snapping between 0 and 10 on animation start, which might be what's causing your bug.
The second way (which I think is a good habit to build) is to separate your game object more. The way I usually do it is by having the animator on the root game object, and then a second game object as its child that holds all of the sprites. What this allows you to do is to animate the child object with all of the sprites (for example, changing sprites to match walking or jumping) while keeping your logic somewhere else that's not the animator (for example, a PlayerMovement script). This allows you to keep the animator clear of any "sensitive" properties, such as the position and rotation that might cause this sort of issue.
I hope this helps!