Ok...

And now that I stripped WeakRefs from my code (Matz just confirmed I
found a bug regarding how they work with Marshal) the code Marshals
perfectly. But YAML still doesn't work.

If anyone wants me to, I can knock together a stripped down version of
my code that should still show the problem.

If there are no responses here, then in a couple of days I'll mail the
library author.