There's no way to do it correctly. You should just create 3 different VMs, one per OS.
Hardware virtualization is based on a lot of low-level tricks for stability and performance and most of them may differ even on same OS versions. Let's say 1-year-old Parallels Desktop doesn't support OS X El Capitan properly, just because it has new kernel, new modules etc. There is no solution to emulate 100% genuine PC for every OS at affordable speed, it's always a tradeoff. That's why two new virtual machines for different OS'es should be different: the mechanisms of managing memory, file I/O etc are different. And if you are lucky enough to launch them, you lose speed optimizations
Moreover, that is a bad idea in its roots. Why should anyone use 3-in-1 VM if all 3 systems are working BAD? To save resources? But modern virtualization platforms are designed to be fast and reliable when they KNOW what are they doing. They could optimally share host resources on their own much better than 3-in-1-and-nothing working solution. In other words, "don't fix it if it ain't broken". p.s. There is a chance you could use Arch and Ubuntu in same VM, using some 'Other Linux' (with similar kernels), but no way for Windows. It will require own VM.And VMWare tools shouldn't work, ofcourse!