You are possibly setting the parent of the new object to an object you then destroy, including your own new object. Make sure the parent is what you think it is… GetComponentInParent can return the child itself: Unity Docs
Solved the issue by changing GetComponentInParent() to collision.transform.parent = null which seperates the object from it’s parent before deleting the other one. Hope this is useful to anyone else who’s also having this issue!