I have both 105 and Ultegra Di2/12 speed systems and have never experienced what you are describing.
My first step would have been inspecting the drivetrain for correct setup and adjustment...always starting at the beginning with der hanger alignment, proper B and limit screws settings (using the etube app where applicable), proper chain length, etc.
It sounds more like a chain length problem...but you don't indicate what the gears are...11-?.
It is also possible that the 'auto centering' of the front der. may be pushing the chain off depending on the gear you are in...50/52/? and the 30/34/?...have you checked the front/rear der alignment/adjustment using the etube app?
I'd be suspect of the bike shop if they are recommending replacement of the freehub and wheel for what could be a much simpler and less costly remedy.
There are steps to take before just replacing parts and hoping for the best that are more likely the reason than the steps you and the shop have taken...