Unfortunately, what you're seeing in my post isn't exactly what I'm seeing in real life. When using the <code> markup in my post, it changed the UTF8 character, and I couldn't figure out how to make the markup show exactly what I wanted it to show (i.e. what I'm seeing in the script and debugger). That has unfortunately served to confuse the question.
Regardless of what's showing up in my post, my script contains actual UTF8 characters, and when I use the debugger to show exactly what is in the data structure after the Load function, YAML::Syck shows the exact same UTF8 characters that are contained in the __DATA__ section. All others modules produce strings containing perl encodings.
Hope that clarifies things a bit.
EDIT: I need to retract my above statement. I'm still trying to understand perl and unicode (which I definitely don't have a great understanding of). Although the posting markup issue is there, the comments you make are correct, and I was wrongly interpreting things. What I've been calling the "correct" behavior does indeed involve a string of length two (instead of one), so I've got to look into this in more detail to determine exactly what it is that I'm seeing and what I WANT to see.