Мда... я теперь понимаю, почему движок работал годами. Потому что были приняты к сведению однобайтовые кодировки и запрет на любые символы юзернеймов, кроме латинницы :) очень много всего может вылезать, сообщайте, если найдёте. Движок просто не готов к уникоду ВООБЩЕ.
Обновление по той же ссылке. Работы там непочатый край, нужно поднимать фактически все скрипты, может, и справлюсь за месяц... пока не уверен.
Получается так, что функции substr_unicode, strlen_unicode и вероятно в скором будущем, strtolower_unicode нужно включать в bb_functions.php, а не в bb_func_txt.php. Чтоб не таскать за собой горы функций для обработки сообщений, которые для юзернеймов и много где ещё не нужны. Вследствие этого обновления, скорее всего, вам нужно будет убрать блок включения bb_func_txt в недавней версии 1stpagenews.
Также настройкой будет включаться mysqli_set_charset, как вы и предлагали, только я сделал её более гибкой. У меня на локальном сервере не работает уникод вообще, т.к. на нём не написано сайтов :) но это включение помогает сохранять данные корректно, чтобы скрипт их потом успешно находил.
Что касается обновления для мобильной версии, то в bb_plugins код, где упоминается $user_usr_disp, нужно поменять вот на этот:
if(strlen_unicode($user_usr)<=15) $user_usr_disp=$user_usr; else $user_usr_disp=substr_unicode($user_usr, 0, 15).'...';
С этими обновлениями, по крайней мере, у себя я смог зарегистрировать юзернейм в кириллице, войти с ним и добиться того, чтоб он урезался корректно в мобильной версии. Но пока что это всё :) bb_func_checkusr.php нуждается ещё в правках для уникода. Функция count_chars работает только для однобайтовых символов. Ещё по мелочам там много проверок нуждаются в доработке.
Уникод заметно, заметно осложняет жизнь :) шляпа полная. Я даже не понимаю, как ваш старый форум корректно в нём работает. Это какая-то мистика.