I just had this happen when I wanted "normalized" music on my iPhone because I am no satisfied with sound check. All my songs still had different volumes. I turned off the cloud on my phone and added music with USB. I turned the cloud back on and I got the duplicate issue. Here is what I did to fix it:
Turn off Match on phone
Update match in iTunes from the "store" menu (see below for why this might be REALLY important.
Connect phone
Check "manually manage" in iTunes from the first tab when you click your phone in the left pane
Open the "tree" for you iPhone in iTunes by clicking the triangle.
Select "music" in that tree.
Delete all the Music from the phone.
Sync it.
Eject phone.
Turn match back on and download music via the iPhone but this takes a while.
or I just reconnected it, then went to the music tab for the phone ticked the sync option and checked the playlists I wanted. I synced it. I then made sure "manually manage" was checked in first tab, then went into the left pane and deleted the playlists. This leaves the music on the iPhone but not the playlists. I ejected and turned on match on the phone.
My guess is there is a glitch where identical playlists from the cloud seemed to conflict with the ones physically on the phone and / or iTunes match could not match the physical files on the phone. It seems my metadata for the files "seemed" different than the ones in the cloud. Running RealPlay gain on my library is suspect for my issue so if something happened on your computer that changed the data about your files even without you knowing, this might be the issue. It is merely a hypothesis but it seems logical. Resyncing match then putting the newly understood match on the phone seems to resolve my issue.