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!