Very probably the byte order of your UTF-16 file is not the one expected by the converter.
Create an instance of Poco::UTF16Encoding and set the byte order accordingly.
Poco::InputStreamConverter(fis, utf16, Poco::TextEncoding::byName("UTF-8"));
You can also check if your text file contains a byte order mark - the Unicode character 0xFEFF. In this case you can read a 16-bit integer from the file and pass it to the constructor of UTF16Encoding.