You could create a new global weather_data structure for each new climate.
Define it in db.c like the existing 'weather_info', and alter the functions inside weather.c to be passed a particular weather_data struct instead of void.
I remember seeing this snippet too, which converts global weather to each zone having its own weather patterns:
www.circlemud.org/pub/CircleMUD/contrib/src/zones/
weather.tar.gz
This might break the continuity for some areas, but would be good for say - different planets for example.
Perhaps a combination would suit your world?