My experience has been that TDD tends to do a poor job of testing complex systems with complex interactions. If any of the assumptions the tests are based on change (or are incorrect/brittle) then you will silently experience failures.
Integration testing is the more valuable side of testing imo but much harder and slower. Also not amiable to TDD in my experience.