This actually breaks down into two separate question parts:
- Version Control Server: With access control, etc.
- A Compatible Version Control Client: With a nice GUI
One thing to consider for the server side is the access from other platforms - Team Foundation Server is very definitely a MS product and is quite tightly tied into Visual Studio while GitHub Enterprise will be familiar to the 14 million users of GitHub. Both have good support for various forms of Access Control.
I would also suggest taking a look at HgLab for a Windows based, self hosted VCS - you will be pleasantly surprised at how easy administration can be.
For Team Foundation Server running in TFVC the clients are Visual Studio and AFAIK that is it - Since TFS 2013 you can also use it as a git server.
There are a rich selection of clients available, more for git based repositories, ranging from the command line, (git/wingit), through GUI Clients such as GitKraken to Explorer Integrations such as TortoiseGit and many development environments have git support either built in or as a plugin. Personally I use the command line tools a lot but most of the people that I work with prefer the Tortoise tool chain. It is worth noting that the Mercurial (Hg) and the associated TortoiseHg tools can also act as git clients, (by enabling the git extension), and have excellent user interfaces.