Detaching actor snaps back to original location

Have you tried something like:

FVector SomeItemWorldLocation = SomeItem->GetActorLocation();
SomeItem->DetachRootComponentFromParent();
SomeItem->SetWorldLocation( SomeItemWorldLocation );
SomeItem->SkeletalMesh->SetSimulatePhysics(true);