Based on the information above, I was able to make this work by changing the AutoWrap property to this:
private float AutoWrap{ //get autowrap limit OR ui bounds
get{
if(uiMode && wrapText) return initialUIAutoWrap; //get wrap limit, within left and right bounds!
return autoWrap;
}
}
private float initialUIAutoWrap = 0;and adding this to OnEnable():
if (uiMode && wrapText) {
initialUIAutoWrap = ((RectTransform) t).rect.width;
}which yields the correct sizes in my tests! Success!

I have to figure out the correct padding values, but other than that, it is working! Thanks so much for the help!