I've been in this position before. Transparent proxy running Squid and Dansguardian will solve most of your problems. And having a local cache will help fix your low bandwidth issue. Your skill level and networking knowledge will determine how achievable this is, but it's a great solution when you have it in place. Good luck!