Ok as I could not reproduce saving translation with % sign, I am pretty sure you are talking about situation when you enter % into string and then translation does not work in front?
% sign is magic character used by sprintf function and will try to replace %s with string, if defined.
Only what comes to my mind is that if translation contains "%s" and you change it to something different like "%dup", or you use % sign twice in this string, it may not work.