Howdy kmcca,
That is no good. Good investigative work. I actually came across this just the other day. A former developer of our plugin was encountering the same problem, it turned out that one of the caching settings in his caching plugin, I think it was Total Cache, was causing the dates to migrate a day.
It could also be a timezone issue like you mentioned, I have seen that before as well. Were this the case, it is usually because another plugin or your theme has modified the default WP time zone. This usually happens via a function like date_default_timezone_set(). When it is set to something other than the default UTC that WordPress itself sets. TO test for this, would mind following our tutorial on testing for conflicts?
Please let me know how that goes. If you do have Total cache, does disablijng it fix things? If so, it would be worth playing around with your cachinc settings to see if disabling one aspect of the caching will cause the dates to align. If you have any other question let me know. Cheers!
– Brook