Reassign contacts and opportunities together

I am wondering if anyone has a suggestion for a better way to assign contacts/opportunities/tasks when a sales rep leaves the company. In our basic settings, we have contacts and opportunities separate because a contact can one back in multiple times and anyone can sell them on an additional service. However, when someone leaves, our only option seems to be to divvy out the contacts, opportunities, and tasks completely separate. This means that if the former employee had 1,000 contacts and 500 open opportunities, and we tell the system to divvy those up to 3 different people, one person will likely get the contact, the second will get the opportunity, and the third will get a list of tasks that don’t correlate to the first two. This is assenine and we end up spending a day trying to get it all sorted back out again. Does anyone have a better way?