OK so using a web browser, go to
https://contacts.google.com
That's the actual main database for your contacts entries, inside your online, Google account. The contacts database on your phone syncs itself to your online Google account, and then all the apps on your phone, the Contacts app, the WhatsApp app, the Duo app, etc. just rely on the contacts database in your phone. So something in that chain of succession isn't working or isn't set up correctly.
-- Do a temp test and make up a fake entry on your phone and a different fake entry using your web interface to confirm the syncing is working both ways between your phone and your online account. (the end result being two fake contact entries showing up in your Contacts app on your phone and in your browser's web interface.
-- If that works out, at least you've determined your phone and your online account set up is good, and then at this point it's a matter figuring out why WhatsApp and Duo aren't syncing up properly with your phone's contacts database.
-- If that doesn't work, than it's a matter of re-configuring the Contacts app on your phone, and that could also be an indicator why neither WhatsApp nor Duo are able to access your phone's contacts database properly.
You also mentioned installing third-party contacts apps, which introduces another set of issues as it depends on how each one was configured -- to sync with your online Google account or with your phone's internal contacts, and if they keep their own internal database -- and if they do or don't override your Contacts app or work in conjunction with it.