Hi.
The "KeepAlive" directive (now known as TCPKeepAlive in 3.8) controls
only the use of SO_KEEPALIVE socket option, which enables or disables
the system-wide TCP keepalive timer per connection.
In addition to that, sshd has an application-level keepalive,
controlled by ClientAliveInterval and ClientAliveCountMax. It is these
that generate the "keepalive@openssh.com" messages and these that you
need to change in your case, (in addition to KeepAlive).
Later versions (3.8 and up) also have the client-side equivalent
(ServerAliveInterval and ServerAliveCountMax).