That's correct, doing an in-place upgrade is never a recommended method. Also mixing roles like that is also not recommended. A better option may be to clean install it, patch fully, add the hyper-v role (as only role) on host, then stand up two virtual machines, one for active directory, another for NPS.
The prerequisite before introducing the first 2016 domain controller: domain functional level needs to be 2003 or higher
Migration from older sysvol FRS replication to DFSR is recommeded (if not already done)
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.
Export an NPS Configuration for Import on Another Server
--please don't forget to upvote
and Accept as answer
if the reply is helpful--