Gotta love free-form user input.
I parse these things too, and what I do is write out all the parsing errors to a separate error file for manual review. Those records go into a two-column database table with the original record as received from the FCC in one column, and a modified parseable record in the second. Then the next time the record is parsed, if there are any parsing errors then the record is used as a key to look up a modified version in the table. If one is found, it's used in place of the original, but if no match is found it gets written out to the error file.
I ran into a similar situation at work with a couple of pipe-delimited files, but in those cases there was just one free-form field involved. In those cases you can assemble everything before the offending field, then everything after, so that any pipes in what you have left can get automatically escaped.