Добрый день.
Не задумывался, да и не было потребности, в сериализации Set'a содержащего экземпляры класса в строку.
X++:
Set s = new Set(Types::Class);
;
s.add(new Class1());
s.add(new Class2());
info(s.toString());
info(s.xml());
Однако, оказалось, здесь есть полная свобода для творчества и никто не запрещает перекрыть ToString() и xml(int _indent = 0) в классе. Тем самым можно сконвертировать Set в строку без явного перебора его элементов.