Private Function IsUnicode(ByRef sStr As String) As Boolean
IsUnicode = True
End Function
Todas las cadenas de VB6 son UNICODE. Tú lo que estás comprobando es que no se haya hecho una doble conversión UNICODE->UNICODE. Una forma más simple de hacer esa comprobación es con StrConv.
Si pasas la cadena como ByVal a un API ésta será convertida automáticamente a ASCII y se pasará el puntero. Si la pasas como ByRef se pasará la referencia al BSTR. Si lo que quieres pasar es una referencia a la cadena en UNICODE puedes usar StrConv() o bien pasar el argumento como ByVal Long y usar StrPtr().
¿Qué código te genera esa cadena malformada?