i had similar problems, and it got worse the moment, jumping and falling was implemented (it was impossible to get exact and repeatable jumping results). So after a way to long time trying to fix it (f.e. with way over the top accelleration etc.) i have completely thrown out those character movement components and replaced them with my own version of a grid movement system. This way its way more stable and jitterfree, it´s using the “move actor/component to node”.
Fair word of warning, that movement node ignores collisions, thats why i have some booleans, that are set to true or false, if the path is blocked or not (right now i am using a boxtrace for this, but i recently found out how to read the tiles fom the tilemap itself, so maybe i use this data in the future to save the boxtraces).
Here is the core part of my Grid movement, this one is for the X axis movement, an identical setup exists for the Y axis too. Speed is set by the X and Y Step size (thats how far it will move in one go) and the Grid Tile travel time (how long it shall take to travel this one step).