I have the same problem, except it took me an hour to find out what was going on, since I thought it was because of the Daylight Saving Time which just happened yesterday.
So - to reproduce the problem:
1) Set the timezone to TZ1
2) Create calendar event at time HH:MM
3) Set timezone to TZ2
Result - calendar event is shifted.
Whoever implemented this should quit his job and hide in the most forgotten place on earth. I mean - WTF?
I understand SOME use of this - I create a calendar event that I want to share with someone from another TZ, then it should be translated to that TZ, but again - WTF??
Most of the users need just this: I create an event - a flight schedule for coming back from vacation. I create it before going on vacation, then I go on vacation and change the TZ. On the return day my alarm will ring x hours after the intended time (if vacation place is eastwards) or x hours before if vacation place is westwards. INSANE