UI Position not scaling with Resolution changes when using RectTransform.rect.height, any ideas?

I’m trying to position a centered tooltip window over a mouse pointer. This is my code, I’m calling this function in OnMouseOver for the combined label/item object. It works great at my 1920x1080 reference resolution but it gets wonky as the resolution gets larger.

toolTipDroppedItemPanel.transform.position = Input.mousePosition +
                                                         new Vector3(0, toolTipDroppedItemPanel.GetComponent<RectTransform>().rect.height, 0);

The behavior I’m seeing is the larger the resolution the more inaccurate the rec.height is, its almost like its not reporting the size of the window correctly. What I want is the window to always be above the cursor, which is what I thought rect.height would do.

In these examples below I have my mouse cursor directly over the purple cube just under the O in Longsword, you can see how as the resolution increases, the window slowly creeps down. I’m using a canvas scaler of 1920x1080, match Width, 100 Pixel reference, nothing I change in the scale seems to affect this weird rect.height behavior. Would super appreciate any pointers or help! Thanks!

1920x1080:

8432525--1116710--upload_2022-9-11_21-0-31.png

2560x1440:

8432525--1116713--upload_2022-9-11_21-1-1.png

3840x2160:

8432525--1116716--upload_2022-9-11_21-1-34.png

So I added some debug logs for rect.height, rect.yMax, rect.size.y, and rect.sizeDelta.y, they all remain the same across resolution changes so it must be something weird with the mousePosition scaling weird? Still not having any luck after trying a few “UnscaleDelta” functions I’ve found on the forums/stackoverflow.