I noticed that the %endtime% tag was returning the start time and when I went hunting through the code I found the every line in wp-events-functions.php that set %endtime% actually referenced $event->thetime rather than $event->theend
e.g.
$template = str_replace('%endtime%', str_replace('00:00', '', utf8_encode(strftime($events_config['timeformat'], $event->thetime))), $template);
instead of
$template = str_replace('%endtime%', str_replace('00:00', '', utf8_encode(strftime($events_config['timeformat'], $event->theend))), $template);
Good ol' cut and past error I suspect.
Regards,
Rod