Object stretching and rotate on collision

I’m making an archery game and using the below code on my arrow prefab. This should stop and freeze the projectile on collision with any object using a particular tag, however the object stretches and warps on impact. How can I make it stop like a regular arrow?

    void OnCollisionEnter(Collision col){
        if(col.transform.tag == "WoodenObject"){
            StartCoroutine(WoodObjectImpact(col));
        }        
    }

    IEnumerator WoodObjectImpact(Collision col){
        Debug.Log("started wooden object impact");
        audio.PlayOneShot(arrowimpactwood);
        transform.parent = col.transform;
        rb.velocity = Vector3.zero;
        rb.angularVelocity = Vector3.zero;
        rb.constraints = RigidbodyConstraints.FreezeAll;
        rb.isKinematic = true;
        embedded = true;
        yield return null;
    }

The Arrow Model has to be parented to an object that’s uniformly scaled (x,y and z scale are equal), otherwise, the vertices act strangely and don’t move uniformly when the object is rotated.

So when you parent it to the collision object (Which I assume doesn’t have a scale of 1,1,1), it warps. A simple fix would be to make sure the Arrow is parented to an object scaled (1,1,1), and it shouldn’t matter if you then in turn parent that to the collision object