How to reference an object when a trigger touches it (3D)

I’m trying to make something that when a trigger touches it (in this case, an npc) it will reference and pick it up and move it around - ive tried to get it referenced but none of my ideas work - any help is appreciated!

Code:

public void OnTriggerEnter(Collider other)
{
    if (other.transform.tag == "Item" && this.Cooldown <= 0 && !this.HeldItem)
    {
       this.ItemTransform = other.GetComponent<Transform>();
       this.ItemHoldingCooldown = (UnityEngine.Random.Range(20f,60f));
       this.HeldItem = true;
    }
}

public void Update()
{
    if (this.HeldItem)
    {
        this.ItemTransform = this.MyTransform;
        this.ItemHoldingCooldown -= Time.deltaTime;
    }
}

EDIT!!

i want to update this a bit so that people understand it a bit more - the thing picking up the item is an npc. from what i can tell, the OnTriggerEnter function isnt working. i remade the code in the script for pickups - these will work, but its just the triggers driving me a bit nuts. all pickups use capsule colliders labled as triggers - the thing i want it to do is when an npc (tagged specifically for the scripts) touches it it moves it around for a while before dropping it. animations and gravity do not need to be accounted for. the other collider has a sphere collider (as another trigger) and a rigidbody.