utf8文字列かどうかを判定している部分を直して試してみると、別件ではなくあたりのようでした(Unicode部品は、ShiftJISかUTF8の文字列を自動判定して受け取ります)。
現在、バグによりどんな文字列でも、ほぼ確実に「UTF8ではない」と判定されるため、Unicode部品の引数はShift_JISの文字列を渡すと安定して動作していますが、バグを修正した場合、UTF8としてもShift_JISとしてもどちらとしても受け取れる文字列はUTF8として処理されるようになります。
そのため、御認識されずに設定するには、常にUTF8で渡すことが必要になる点が、少し気になります。
(御認識される例としては、Shift_JISの半角カナで「ハイ」と書くと、UTF-8の2バイト文字としても正しい文字になる)