Both %% and %c (value '%') should work, but if you use Format again on a string containing a %, it will go away or error out.
I've found that using something like "PCT" in place of a % works when formatting a string, and just before you go to print it, ReplaceString(string, maxlen, "PCT", "%%", true);.