Hm, can't you just typecast the set to an integer when saving, and then do it the other way when loading?

Btw, doing a writeln(enum_type) will print the name of the identifier, as it appears in code. Have you checked if readln(enum_type) works?