The Heartbeat message use UDP rather than TCP. So it might be worth checking that UDP is allowed between them. The messages have been unicast by default for a while, but older versions of vTM used to default to multicast. If this cluster has been running for a while, then it might be using multicast. Check System -> Fault Tolerance -> General -> flipper!heartbeat_method.
If it's using unicast, then it might be a problem with IGMP on your network. You can either try to fix it, or switch to unicast.