When attempting to send a report via Email, the function CurrentTimezoneOffset() does not work correctly, returning values in UTC.
If you are emailing the reports, then you will want to look at identifying a different way to establish a timezone.
CurrentTimezoneOffset() is established by the browser when the report is opened. When a report is emailed, that context is lost as no browser is involved.
You will most likely have to build multiple reports with static Offsets if you want timezones to be local to users when emailed to them.