It looks like the problem is not one of setting stats against clock hours, but against hours w/in "your day", so the daily interval will be of varying length and periodically shift against the backdrop of the clock. It's a stretch, but perhaps one of the AI::Fuzzy* modules could help. If breakfast could fall anywhere from 4:30am to 7:am, rather than encompass that span of time in segment create a 'breakfast' time segment with fuzzy edges. That way rather than asking of your data, "What is my glucose level at 6:am?" you can ask, "What is my glucose level in the morning?"
Just a thought, and not thought out thoroughly.