How are you handling server correction?
Character class has client-side prediction (CSP) and server correction. CSP is what you want to implement on your pawn. In a nutshell CSP allows you to locally execute inputs vs waiting on the server to execute and pass the result.
What I’m going to “assume” is happening is your local pawn is executing each input/action immediately, then replicating those inputs to the server. Server is executing and correcting immediately without network smoothing.
Read the character movement component page completely. It tells you exactly what’s going on in the background for the TPP/FP character class.
Also note that the character class is not going to work for a vehicle.