do you see any drops at the firewall (out of state ...)
which ssh version client/server ?

If you have a newer ssh server/client try ClientAliveInterval/ClientAliveCountMax (ssh2 only) instead...