Finalzing a very long Migration

Started a Manual migration from a very old Send-mail machine a few years ago....
Nearing completion, do to the very temperamental condition of the old machine we did not follow the standard of having zimbra take all the connections and forward to the old machine.
Part of the reason it has taken so long is documenting a system that has been online for 15 years.

We are now ready to take the old system out of the mail flow for all but 1 account that relies on scripts on that system and the user will not port them to something newer.
So here in lies the issue. When we set up zimbra 2 years ago (it has been being updated) we called the machine ZM.domain.com we made it authoritative for ZM.domain.com, and moved all the accounts in as @ZM.domain.com so as we moved the users they could still send mail out, anything that went to their @domain.com address was forwarded to them by procmail

We had the users set there reply to to their @domain.com address so it did not confuse customers. We now have added domain.com as an aliases domain to zm.domain.com
What we want is now to hide the zm.domain.com and ensure that all users mail that is sent out comes from their @domain.com address

What in your opinion will be the best way to make this work?

The mail flows are working now it is just globally configuring the sent from addresses.

A second issue that may be related is we have a number of other alias domains, if we set a specific alias for the domain users can set in the web-client a persona, if we just use the broad alias domain they cant. IE domain.net is an alias for domain.com, user cant use the .net address as a persona. but domain.org is a stand alone domain and a specific alias is set up for john.doe@domain.org to go to john@domain.com, the user can use it as a persona. Any ideas on why that is?

It would have been better to use a Split Domain for the migration, take a look at that articles for configuration. You should be able to rename the domain on the Zimbra server to you real domain name and keep both servers running.