It’s worth noting that there’s absolutely no point using double-precision vectors unless you’re doing all of your movement code and game code in double-precision as well. Floating point can actually support huge numbers, but it’s the constant multiplying/dividing large numbers by small numbers that creates error.
I had the same issue in Satellite Command. Even with a world that’s much smaller than reality, our movement component does a lot of floating point operations and led to a really unstable final result. The only solution was to completely rewrite the movement component to use double-precision, and then convert back to a standard FVector at the very last minute to tell unreal where in the world to place the object. That did the job fine!