Всем спасибо за помощь.
Проблема решается единственной директивой:
$dbh -> {'mysql_enable_utf8'} = 1;
По-умолчанию стоит «0», поэтому, я подозреваю, TT конвертил данные от sql в utf самостоятельно, но как-то не в том месте, в результате какие-то данные оказывались дважды преобразованными в utf.