While we have used Zendesk for ticketing for a long time, we never used it for Forum/Community or KB. We split over from Jive moving our Forum here and our KB to Zendesk. So I am only familiar with migrating from Jive. I will say that the Discourse team is very adept at migrating from almost any API and knowing the Zendesk API as well as I do, it should not be hard.
Having explored the Zendesk Community capabilities, Discourse is a major improvement.
I have been putting together requirements for a full Zendesk Discourse integration but that will take time.