Aha. I think I've figured it out.
A few days ago, on the Mailhosts tab, I had set up the entry for my server by having Spamcop send me an email and then I copy/pasted it with full headers back into Spamcop's form. This created the Mailhosts entry - but the "Hosts/Domains" pulldown menu for it was empty. This was before I had put the FQDN into the email headers, so my server was only identifying itself with its local name, "www". I think this confused Spamcop.
Yesterday I fixed my mail server to put its FQDN into its email headers.
And just now I deleted that Mailhosts entry and created it again the same way - only, now the "Hosts/Domains" pulldown menu lists "www.enchanter.net" and "enchanter.net".
I resubmitted this morning's spam, and Spamcop was able to handle it with no problem. Thank you both for your help!
tl;dr: If the mail server doesn't put its FQDN into its Received header, then Spamcop's Mailhosts setup won't be able to read the domain name, and Spamcop will reject spam reports for that server with the "identified internal IP as source" error.