We have been using TypeMock for a couple of years and in my experience there is no significant overhead in performance (I'm sure there is an overhead, it is just not a big issue).
However, due to the nature of how TypeMock works there are several things to consider. As TypeMock basically works by injecting code on the fly the errors can sometimes be very exotic. Reporting errors can thus become a bit of a daunting task. Be prepared to dig into IL.
My experience is that it can be hard to explain the "average developer" how TypeMock works. It quickly becomes complicated and even though their Trace tools make troubleshooting doable it still leaves a bit of a support task.
Also, as TypeMock will let you mock anything (except for mscorlib), you don't really need to add the necessary levels of indirection to your code. This is a feature and TypeMock is not really at fault here. Still, I've seen a lot of developers trying to solve their problems by mocking all over the place instead of decoupling the code. That doesn't improve the overall code quality IMO.