This sounds to me as a typical wstring demarshalling problem.
Since you skipped all EJB wrapping every java String will be marshalled as multibyte CORBA string so called wstring (= ::CORBA::WStringValue).
I guess that you run your corba client with Sun's internal ORB. This is not very surprisingly because it is buggy. I suggest you to use OpenORB or JacORB.