The solution is to properly set filters. Namely, when you create a filter, you have to choose option to archive the message e.g. to skip inbox. After this, the messages in thunderbird will no longer be duplicated in the inbox.
Filters and labels are related, but different things. You create filters to automatically label(and thereby "move") the message.
There's no way to automatically sync your Thunderbird filters to Gmail web.
Every new email received has the special label "inbox" unless you use a filter to prevent it from receiving the "inbox" label. The user can attach other labels as they see fit, which is a strength of Gmail becasue that message can have multiple labels.
If a user clicks the archive button the "inbox" label is stripped from the message/conversation, but it ...
I'm not at all sure that Google's spam filters would be triggered by an import. SPAM filtering is normally done at the receipt time.
There are, however, Linux tools you can train with a bunch of emails, still don't think you would be able to use that to clean out the existing MBOX though.
You could instead try opening the file in Thunderbird or another ...
Without more details, I think that the best option is to do the bulk operations in http://mail.google.com just before you could left alone your Thunderbird instance for several hours, as the sync process could take "a while" and consume "a lot" of resources of your computer.
How actions sync in IMAP - Gmail Help
Deleting IMAP messages - Gmail ...
Gmail doesn't offer end users a way to block email messages, but you could set a filter to automatically process them, i.e. mark as spam, delete them, apply a label, as you already did.
Besides this you could set which labels will sync through IMAP with email client. So you could disable the SPAM, Trash or both labels for a while, until Google block those ...
If you're using the same Gmail POP account with multiple email clients you need to enable recent mode in order to let each email client access all of the messages in that account. You can do that by replacing firstname.lastname@example.org with recent:email@example.com as the username in Tools → Account Settings → Server Settings.