It should be ok to have one license for each physical server. However, our licensing system in the GUI version can’t recognize virtual machines running on the same physical server, so if you really want to run the GUI version on all the virtual machines you’ll need one license per virtual machine for the license registration to work properly.
My suggestion is to run the CLI version on each virtual machine and then only one license is needed for each physical server. We’ll release the source code under the Fair Source 5 License very soon so you may be able to use it for free depending on the number of users.
If you mainly use Duplicacy to backup VHD/VHDX files, you should enable the fixed-size chunking algorithm (by setting the max, average, and min chunk sizes to the same value when initializing the storage). This is because virtual disk files are rarely subject to bytes insertion and deletion so you don’t really need the variable-size chunking algorithm.
As for the deduplication efficiency, it is unlikely that Duplicacy can deduplicate OS files inside the virtual disk files, unless you set the chunk size to the disk sector size, but a chunk size that small usually means significant overhead with chunk uploading.
There are cases where you can see deduplication between virtual machines – for instance when you run different virtual machines from the same base image or you migrate a virtual machine from one physical server to another. In such cases you’ll have only one copy of the virtual machines saved in the storage at the beginning, but the deduplication will be unlikely after changes are being made to each virtual disk file (due to the randomness in the file/sector placement).