I've cancelled my contract too. You are all well within your rights to cancel without paying it off as the issue has not been resolved in a timely manner.
Virgin sent me a letter following an online complaint I made - it was no better than the people you talk to on the phone. So I sent another complaint about the letter!
That got ignored so I emailed the CEO a few times and managed to get a call back from the UK based complaints team. They are well aware of the issue but weren't able to provide a timescale on resolving it. The lady was very friendly and I should be getting a few months of money back too. I did say that they need to fix their customers services dept as to me they were making me more angry than the actually issue with data.
Thanks Kaff for the info. However, I already had those settings you described. I went abroad recently and while on the foreign operator's network, all messages came through in real time! Came back to the UK, and I got the same problems as before. I really think it's a problem with the VM network!