So #2 the custom Framework project is the same thing as #1, but customized for a particular client?
Would it make sense to make the custom Framework source code a branch of the normal Framework source code, instead of keeping it as an actual separate solution? I suppose that it would depend on how extensive the differences are.
As I see it, the advantage of making it a branch is that you should be able to more easily merge changes between the two branches. Imagine that a bug fix or a new feature is made in #1 and also needs to be applied to #2; TFS should be able to make this easier, provided that TFS is aware that #2 is just a branch of #1.
Anyway, to get to the point of your question, my thought then is that your other projects should reference the output assemblies from these projects.
I would copy the Framework assemblies into a folder under the solution folder of your other projects. I generally call mine "Dependencies", but it really doesn't matter. Have your projects add a reference to those assembly files. I am assuming that your custom Framework assemblies will have the same name as the normal Framework assemblies, so you can hopefully easily swap those files out as needed (or create separate branches of your projects that use the custom Framework).
I would discourage putting the assemblies into the GAC, because it is easy to trip yourself up during development if you forget to uninstall an older version of the assembly from the GAC.