Hi @Marouf Ali ,
regarding "Here what does it mean "you assign a unique public IP address to each instance.." Is it the instance of the VM or the instance of the VPN Gateway?":
You will assign a unique public IP Address to each instance of the VPN Gateway.
regarding "Also, when it says, that "you can create separate tunnels from on-premises device to each IP address.." - does that mean each ip address of the VM? or each ip address of the subnet?":
You will connect you on-premises VPN device with each public IP address of the VPN Gateway instances.
In the described scenario "connecting an on-premises environment with Azure networks" is no Azure VM involved. In Azure an Azure VPN Gateway will be used.
regading "if it uses internet, it does it using VPN gateway, but is there an encryption of the data being sent through the gateway, because then wouldn't high availability scenarios with risk, be considered unsafe by the client?"
The data sent and received via an VPN connection (between on-premises VPN device and Azure VPN Gateway) will always be encrypted. In my opinion a VPN connection is a safe way for communication.
Please take a look here for more information: About cryptographic requirements and Azure VPN gateways
(If the reply was helpful please don't forget to upvote and/or accept as answer, thank you)
Regards
Andreas Baumgarten