結論

C++Builder2006J, VisualStudio.NET2003, VisualStudio2005 では正常に変換されました。C++Builder6J の文字が途中で切れる問題は変化がないため、locale 設定方法とは別問題のようです。
id:logion:20060207#p4 で書いたように C++Builder2006 では locale オブジェクトの生成に失敗して例外が発生した後、別の locale オブジェクトを生成しようとすると Access Violation で落ちるという問題は残っていますが、ちゃんとした locale 名を使っている限りは問題になりません。
ということで、これなら安心して C++ の locale を使いつつ C++Builder2006J に移行できそうです。