i have read that i can use a custom hold music for unity connection call handlers IVR by creating a "common device configuration" on cucm and choose in it the network MOH music which I added, then i go to each unity port on the cucm and choose the "common device configuration" so that if anyone calls and all ports are busy he will get the music on hold which i customized, is this the correct method?
No. Callers will hear reorder if all voicemail ports are busy. Music on hold is only supported on CUC when using the legacy SCCP-based integration instead of SIP and even then, only for supervised transfers from CUC back to a phone system destination.
The short answer is no, but the mere question implies a design problem.
The 20k user OVA is capable of 250 ports standalone / 500 ports in a cluster assuming low/medium-complexity codecs. https://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/uc_system/virtualization/virtualization-cisco-unity-connection.html
If users are checking voicemail that much consider Single Inbox with Microsoft Exchange (or Donoma Software’s G Suite solution).
If Call Handler usage is that extraordinary then you should be using a dedicated IVR application such as IP IVR or CVP.
CUC Digital Networking may also be a way to distribute the load across multiple clusters of CUC, each serving different mailboxes and call handlers but functioning as a logically coherent solution.