I found out that I could upgrade my 12 month contract from today. I went into an O2 shop, and the assistant there said that I couldn't! I was told that 12 month cannot be upgraded. I could of course, change to an 18 month contract and then be able to upgrade!!!!
I think what you were probably told is that if you upgrade the new contract will be 18 months. Considering other providers are doing 24 and 36 months contracts, that doesn't seem too onerous. I would have a look around and see what else is out there and go for what is best for you.
My partner is still on a 12 month contract he's been told 2 years on the trot now that he cannot keep the 12 month contract (instore) however he's upgraded both times - the most recent one last week - online and just selects "keep my current tariff" of course this is no good if you want to go for a smartphone as they make you change to a smartphone specific tariff (I just did my upgrade last week and even though I have the unlimited web bolt on it wouldn't let me keep my tariff.... However he upgraded to a samsung jet and kept his 12 month contract so it can be done