You need to change one or two kernel tunables - on client machine. To make TCP keepalive (ENABLE=BROKEN) useful.
By default Linux kernel sends the 1st TCP keepalive probe after 2 hours:
# cat /proc/sys/net/ipv4/tcp_keepalive_time
Delay before the 1st probe is sent - after 2 hours !!!
# cat /proc/sys/net/ipv4/tcp_keepalive_intvl
I had similar problems with Epyc 7401P on Windows Server 2019 with Hyper-V and virtual machines. I tried to solve it for several months but without any success and I had to go back to Xeon. It looks like Epyc is compatible with Hyper-V virtualization, but it definitely doesn't work well.