I think it would help if you could provide a complete, runnable example that allows to reproduce the error.
I played around a bit, but the only thing remotely similar I managed to produce is
Cannot decode string with wide characters at /usr/lib/perl/5.8/Encode.
+pm line 166.
when I do exactly what it complains about, i.e. pass XMLin() a string with already decoded (wide) characters...
What is line 42 in SIFX.pm, is this the line with $xml->XMLin(...)? Your subject says it "throws decode error in encode.pm", but you show a different error (or rather warning) message...(?)