How to properly replicate ball location (with physics)

The problem is with interpolation, your interpolation is based on lagged position and speed, and will always have to “catch up” (which is when the sudden jump/stutter happens).
To properly replicate physics, I think the physics calculations themselves would have to include network smoothing timestamps, which in Unreal Engine, currently they don’t.

There may be a plugin available on the marketplace for this but I’m not sure.

Some people have solved this problem by changing the usual arrangement of the server version of the actor being authoritative, to the client version being authoritative (so the owning client’s version of the simulation doesn’t have to wait for a round-trip update from the server to update the ball position), which with some other techniques allows cheating but eliminates most of the stuttering, as long as the client that owns the ball doesn’t have a bad upload speed.