When two Mercury/32 processes are running simultaneously (by mistake) both are polling the same queue, leading to several identical mail being delivered.
When using MercuryD (POP3 client) a mail might be too big, or a TCP/IP error might occur during the transaction. Then MercuryD won't delete the mail from the POP3 host, and it gets redownloaded at the next try. Try setting the timeout to a larger number, and increase the time between POP3 connections as needed.
Some double-mail IMAP errors with Thunderbird can be solved by setting mail.server.serverX.max_cached_connections to 1 (where X is the number of the associated account, typically 2) in the Thunderbird configuration editor.