Finally, I couldn't take any of more of Thunderbird/SpamSieve's false positives and gave in to Gmail.
A simple one-line .forward file in my home directory sends everything on to a Gmail address, which is configured to reply using the address the email was sent to (shame about the Outlook problem with Sender fields, but it'll have to do).
Copied the mail archive to a local folder over IMAP, imported the local mailbox file into Mail.app using Eudora Mailbox Cleaner, then uploaded into Gmail (Mail carries on through temporary errors and deletes emails from the local folder as it goes, avoiding transferring the same email twice if there is a problem. Thunderbird kept giving up on temporary errors, leaving you to start again, and only deletes emails from the local folder once it's finished transferring all of them - luckily Gmail does a good job of ignoring duplicates).
Using Thunderbird as an IMAP client still, or the web browser for quick emails/searching, as Mail.app in 10.4 takes ages to load IMAP folders. Gmail basically filters out the spam, archives some messages using filters and leaves the good stuff in the inbox.
All the folders are set to be available for offline use (stored locally), so if something goes wrong with Gmail I can just delete the .forward file, change the IMAP settings and carry on as before using my own mail server.
I unsubscribed from just about all the mailing lists I was a member of, in favour of reading them on the web every now and then. Google Groups makes this easy - much easier than Mailman - or at least it would if I could get past the dreaded 'Update Email Address' page. Viewing items in Google's cache, for now...