I don't know if anyone concerns about this problem anymore, but there was development. It seems that in our case the cause of the problem is our central router/firewall Cisco ASA 5520 with rather old software 8.2(2)-k8. If we replace ASA with Mikrotik, everything works fine when global firewall feature is enabled. But if global firewall feature in Proxmox is disabled, then again everything works fine with ASA.
So, conditions for the problem is this:
1. Communicating virtual machines must be on the same Proxmox node. If one of machines migrated to other node, all works fine.
2. Communicating virtual machines must be in different networks, routed through external router/firewall Cisco ASA 5520 (in our case). If Cisco ASA replaced with Mikrotik, all works fine.
It's unclear what causes the problem. If we permit all traffic on Cisco ASA, the problem remains. We cannot permanently replace Cisco ASA with something else, although soon we purchase newer Cisco ASA and then we will do some tests.
If anyone experiencing the same problem - what router/firewall you are using? Is it Cisco ASA or something else?
Update:
When global firewall feature is enabled it's possible to get rid of the problem by deleting one firewall rule on Proxmox node:
iptables -D PVEFW-FORWARD -m conntrack --ctstate INVALID -j DROP
But default firewall rules is hardcoded, so it's not a solution. Also I believe these rules put there for good reason. So there must be something wrong with ASA, but what can it be?