If the actor with a replicated root component spawns and is immediately attached, when it replicates to the client the transform will be incorrect. Adding a small delay between the spawn and attachment does work. Marking the root component not replicated also works.
From UDN thread:
1. Create a new AActor (blueprint or whatever) with a few scene components. Set the actor and its root component to replicate.
2. Spawn this actor on the server somewhere other than origin and immediately attach it to something.
3. The server and client will see different actor positions.
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-52540 in the post.