I think this should already work, not sure if it works in all formats. I think if you use e.g. Vorbis or Ape tags, where tag names are just arbitrary strings, you should also get all the strings in an equally named variable (all lower case in Picard). So if you save
%mytag% and read this file again I think you should be able to have a
%mytag% tag again.
For ID3 this should work likewise: Every tag Picard does not now about it saves as e.g. TXXX:myname, and it also again loads all TXXX tags again and makes them available as variables.
%mytag% and reading it again as
%mytag% work for you?