I think I may have found the issue. The problem VI is attached ("test1.vi"). The variants in this example are actually Database Variants. If I use the database type information to convert these variants to a normal variant, then the flatten to/from string works properly.
Please see the attached "DB Variant to FlatString.vi" that fixes the problem. I'm learning all the time - just very slowly!