Or should we move the FSMO roles to a newly installed and promoted VM 2016 DC and also move the DHCP from 2012 DC/DHCP to > the new VM 2016 DC/DHCP and then demote the 2012 VM DC?
I'd favor this option but since they're virtual machines why not stand up a separate member server to host the DHCP service?
Some general info;
The prerequisite before introducing the first 2016 domain controller domain functional level needs to be 2003 or higher.
I'd use dcdiag / repadmin tools to verify health correcting all errors found before starting any operations. Then stand up the new 2016, patch it fully, license it, join existing domain, add active directory domain services, promote it also making it a GC (recommended), transfer FSMO roles over (optional), transfer pdc emulator role (optional), use dcdiag / repadmin tools to again verify health, when all is good you can decommission / demote old one.
--please don't forget to Accept as answer if the reply is helpful--