When returning a pool object to VRCObjectPool, VRCObjectPool needs to be moved to StartPosition/StartRotation once the pool object is deactivated. That too locally.
Currently the position reset is working when the pool object spawns from the VRCObjectPool.
For example, the pool object has a VRCObjectSync and is scripted to return to the VRCObjectPool when it hits the Return collider. When it contacts the collider, the Pool object just deactivates and stays there. So the next time the pool object is called with TryToSpawn, it will contact the collider again immediately after it becomes active, reset its position, and return.
In practice, this behavior is random depending on network conditions, such as when the owner of the VRCObjectPool and the owner of the pool object are different.
Translated with www.DeepL.com/Translator (free version)