Ok, this is so simple there must be something wrong with it, but in ubb71CMS.php I changed the guts of function UBBCMS () to the following, basically subbing USER_DISPLAY_NAME for USER_LOGIN_NAME:
$this->loginStmt = new Statement("SELECT USER_DISPLAY_NAME, USER_MEMBERSHIP_LEVEL, USER_PASSWORD,USER_IS_APPROVED,USER_IS_BANNED,USER_ID FROM {$GLOBALS['config']['TABLE_PREFIX']}USERS WHERE USER_DISPLAY_NAME = ? LIMIT 1");
$this->getUserStmt = new Statement("SELECT USER_DISPLAY_NAME as login, USER_MEMBERSHIP_LEVEL as status FROM {$GLOBALS['config']['TABLE_PREFIX']}USERS WHERE USER_ID = ? LIMIT 1");
$this->getUsersStmt = new Statement("SELECT USER_DISPLAY_NAME as login, USER_ID as id FROM {$GLOBALS['config']['TABLE_PREFIX']}USERS");
Then I expired my site cookies and it shows my username rather than my login name. Violá!
I'll have to warn all my users to expire their cookies, otherwise it they will not be autologged in the first time. To log in manually using this code, you have to log in with your display name and password, rather than login name and password. As long as autologin is working, this process will be transparent and your users won't know it's even happening.
All my users will hit it in the morning, and we'll see what happens. I'll report back if any probs.