Hi,
Yes, for more resilience to failure you would need at least 2 VMs for the workload/application when using Availability Sets.
No, the VMs will not replicate changes to each other automatically. The apps/workloads running inside of the VMs need to be designed to replicate/sync/share data between each other, -OR- the apps/workloads need to be stateless.
-TP