I ended up asking on the cvs2svn users mailing list. I received the following response from Michael Haggerty:
I don't believe that this error can come from importing twice. AFAIK each time you import you would create a new vendor branch; e.g. 1.1.1, 1.1.3, etc. (the last number is always odd for vendor branches), and each vendor branch would get its own symbolic name. The situation you are experiencing is that you have only one vendor branch, 1.1.1, and it somehow has two symbolic names, 'X' and 'Y'.
If you tell cvs2svn just to ignore the unwanted symbol name, then the conversion should go through without complaints. To do this, you need to start cvs2svn via the options-file method and then use a IgnoreSymbolTransform. See cvs2svn-example.options for documentation.
If you want to be super-careful, you might first want to verify that the symbol name that you are ignoring is really redundant in every file. Or, I think it would also work to transform the unwanted symbol name into the wanted symbol name, because cvs2svn ignores symbols that appear twice with the same value. This would require something like
RegexpSymbolTransform(r'X', r'Y')
I then used the IgnoreSymbolTransform to hide the extra symbols.
Additionally, I ran into a secondary error due to files that had been patched in HEAD and then a newer import occurred. By force committing the files, I was able to get them back onto HEAD and avoid this:
ERROR: File '/home/cvs/src/contrib/one-true-awk/FIXES,v' has default branch=1.1.1 but also a revision 1.2