I had similar problems with the calendar on the iphone until I set BOTH timezone sections properly. That is, there is a time zone entry for Date & Time, and one for Calendar, and both should be set, regardless of whether you have "Automatic" and/or "Time Zone Support" turned on or off.
So, under Settings>General>Date&Time, turn "Set Automatically" off and then pick your correct time zone. I also turned on "Set Automatically" after setting the proper time zone there.
Then, go to Time Zone Support and turn that off, then pick your correct time zone. I leave the support off because I always enter my calendar times for local time in the time zone I'll actually be in (e.g., a 10:00 meeting in London is set for 10:00 in my calendar even though I live near philadelphia, because it want it to be set for 10:00 when I'm there in London).
Ever since setting both time zone sections, I've not had any problems. It turned out that the date&time setting was set for cupertino, though I never noticed it because set automatically was turned on. So even though I'd set my calendar time zone properly, odd things happened because somehow the cupertino time zone was effective for certain things.
Anyway, just a few thoughts.