TimeZoneOffsetHours is a legacy field no longer used and PreferredGreenwichMeantimeOffset config setting is also legacy and no longer used (except under Mono).
We have a newer and better timezone system now. You can specify the default time zone from site settings and users already have a timezone setting on the profile page.
Under the new model we are actually storing a timezoneid and using the new .NET class TimeZoneInfo. This allows us to automatically adjust the offset even during daylight savings time. For example Eastern US Time Zone has an offset of -5, but during Daylight Savings (ie right now) the offset is actually -4 hours. The new system handles this automatically whereas the old system had only a fixed offset and we would have to adjust it manually during Daylight Savings.
So there is logic specifically suppressing any custom profile field with the name TimeZoneOffsetHours because that is a special name that maps specifically to our legacy field on mp_Users.
You can force a user to choose a TimeZone during registration like this:
defaulltValue="Eastern Standard Time"
Hope it helps,