I would stick to one single authoritarian repository, or you would end up in a hell of a version. If you intend for external developers to code on the codeplex side, you need to merge your changes with them and integrate their changes into your own internal TFS server.
It is safer to have one single authoritarian repository and just create snapshots for intermediate releases on another.
You can do your fine-grained checks and changes in your internal repository and periodically integrate / merge them with the codeplex code tree. However, what works on one code base may not work so well with another after integration, the sooner you integrate the changes better (you do not work on your isolated branch for too long).
Joppe source share