If the coverage map was shown on the O2 website, I think it is not unrealistic to cancel your contract and ask for some sort of rebate. It wont hurt to contact them and explain your situation. You have been informed by 02 that they are fixing the problem and they clearly havent.
I dont know the legalities of the situation, and I would recommend that you seek some legal advice if refused by 02.
Throughly check the terms and conditions to see if there is anything in there related to your problem.