I'm running into this problem more and more often both with Kolab shared folders and with our virtual folders.
KCalCore::Calendar is designed to represent a single calendar, a single collection of events and as such it assumes that all events have a unique UID. Unfortunately the way this is integrated with Akonadi creates issues: we create a single KCalCore::Calendar and we push into it all the events from all Akonadi::Collections, which are our actual calendars. And once we start pushing events from multiple real calendars into a single KCalCore::Calendar the always-unique-UID assumption breaks.
Ideally we should map a single Akonadi::Collection to a single KCalCore::Calendar. This would need some adjustments in EventViews to render events from multiple KCalCore::Calendars, but nothing impossible IMO.