From the information you presented shared hosting would be fine for all your sites and you can host all from one account.
As far as moving the sites and registrations to dreamhost, that is really a two step process. To minimize/eliminate downtime here is how I would do it:
[*]In the dreamhost panel add the domains on the manage domains page.
[*]FTP your files, databases whatever you need to bring over. Using information from this article you can access the sites as they are hosted on dreamhost. (note: the most talked about method is using a mirrored dreamhosters.com sub-domain, If you are using wordpress or another CMS its much easier and more straightforward if you can use the HOSTS file method or "use dreamhost namesevers" method.)
[*]When you have the sites debugged and working as you want it, log into the domain's current registrar and change the nameservers to ns1.dreamhost.com, ns2.dreamhost.com, ns3.dreamhost.com. When this is complete, over about the next few days all visitors will start getting the dreamhost site. It takes awhile for DNS to propagate so don't kill the old site at the old host too fast.
[*]Finally: Transfer the domain registrations to dreamhost. You will have to pay a fee equal to a years registration, but it also extends the expiration date by a year.
many think they must transfer the domains to move hosting and that is not true. It's much cleaner to handle each separately, and do the actual domain registration transfer after moving the sites themselves.