Try enabling keep-alives. This causes PuTTY to send SSH null packets to the remote host periodically, so that the session doesn't time out.

There are other things that can cause connections to drop, but this is worth a try. If it doesn't work, you'd need to look into these other things: VPN timeouts, router timeouts, settings changes on the remote SSH server, flaky connections, etc.