Just did some research and I think the confusing thing is I have a unique situation. My brother also got an iPhone December 2007 and he can upgrade just fine at the lower prices. I relocated around January/February and called to change my number to the local area code for free. (I have no idea what significance July 2008 has). So apparently there's some kind of reason why AT&T thinks that my contract has started later than it actually has. We started paying for both phones in December 2007 and no plan changes were ever made.
Are you on a family plan? If so, it's possible the primary line on the family plan (your brother's?) would be eligible for an upgrade earlier than you. If the rate plan+data+text on the primary line is >$99, that line may be eligible for an upgrade every 12 months.
As for the secondary line, it should generally be eligible for an upgrade 18-21 months from when your contract started, based on what the charges on that line are. When you say you relocated in January/February, do you mean of '08 or '09? If it was 2009, then a two year contract from that date would be 1/11, but you could be eligible in 7/10 because that would be 18 months from 1/09. If you meant you relocated in January 2008, then that is really weird, and I can't see that the 7/10 date correlates with that at all.
So the next question is, why would changing your phone number reset your upgrade eligibility? If you didn't get a new handset at that time, that makes no sense, and it sounds like someone messed up. I would call AT&T ASAP to work on getting that straightened out, because it may take a while, and that has a big impact on upgrading to the iPhone 3G S, if that's what you want to do. It seems like they should be able to tell in the system whether or not you got a new phone around that time, and if not, hopefully they will fix your upgrade eligibility. Good luck!