ソース管理、バージョン管理について知恵をお貸しください。

C#にて自社パッケージ開発をしているのですが、パッケージとは名ばかりで、
結局のところユーザーごとにカスタマイズすることが多く、ソースの管理に
手を焼いております。

現在はTeam Foundationを利用し始めております。
基本プロジェクトとしてベースとなるプロジェクトを作成し、
それをユーザーごとに新しいプロジェクトとしてコピーした後に
カスタマイズしております。

そうしますと、当然ながらバグがあった場合にすべてのプロジェクトに
手作業にてパッチ当て作業が発生しますので、ユーザー数手間がかかることになります。

仕方が無いと言えばそうかなと思うのですが、考え方やTeam Foundationの使い方、
管理のしやすいプログラム構成の良い方法等がございましたらご教示いただけませんでしょうか?

宜しくお願いいたします。