I've been struggling with this issue for several days: searching forums, reading articles, checking system status, cleaning my Mac, shutting down apps, twiddling with Terminal, deleting files and folders, restarting iTunes, toggling Match, and more. Nothing worked UNTIL yesterday, when I found an obscure post from someone else who solved the problem by using an app called Entonnoir (free) to throttle their upload speed. For them, it worked because their ISP was terminating their upload sessions (step 3 in the iTunes Match process), which restarted the Match process at step 1.
Universally, most ISPs, it turns out, watch for high-bandwidth uploads and terminate them indiscriminately, because they don't want to be liable for the uploading of copyrighted content through torrents or other schemes. Thus, when they get the signal that there is a big lengthy upload coming from one of their client IPs, they kill it. iTunes Match then faithfully restarts, treating the termination as an error.
In my case, throttling worked BUT was dreadfully slow - only about 1 song per hour (throttled at 200kbs). So I tried another approach this morning: I'm uploading through my VPN service. After 3 hours, it's still working flawlessly, uploading around 100 songs per hour.
IF you try using a VPN service (there are some available online), be sure it handles traffic from all ports, and is not just dedicated to HTTP/HTTPS ports.
Apple is far from perfect, and the same can be said of iTunes Match; however, I believe this problem is the ISP's.
For background, I'm in the US and my ISP is Comcast (digital cable services provider). Hope this helps...