I know this is a few days late, but I wanted to have a try at this. Here is what I came up with. Does it do what you require?
with countDates as (
select venue,
eventdate,
dateadd(hour, -1, eventdate) beforedate,
dateadd(hour, 1, eventdate) afterdate,
count(*) over (partition by venue, eventdate) repeated
from #groupings
)
select
eventname,
venue,
ca.eventdate
from #groupings g
cross apply (
select top 1 eventdate
from countDates c
where g.venue = c.venue and
g.eventdate between beforedate and afterdate
order by repeated desc) ca
group by
eventname,
venue,
ca.eventdate;