For those that are interested, if you change the order of two lines of code, it works
UIInput.cs ~ln 320 Function Update()
if (mText != text) mKeyboard.text = mText;
UpdateLabel();
Switched to
UpdateLabel();
if (mText != text) mKeyboard.text = mText;
What this does is UpdateLabel correctly sets the length of mText dependent on Max Chars.
Then you set that text back to the keyboard.