I think the F() macro currently has no advantage over wxString::Format() and complicates the calls unnecesarily, forcing usage of wx_str().
The thread-safe part is one important reason to ditch it.
Also, calls to wxT() and _T() should be removed. There are a lot of code like this:
if (String[n] == wxT('P'))
that creates two temporary wxString and compares them, while this:
does a direct wxChar comparation.