The issue is TypeChecker.h lives in lib/Sema instead of include/swift/Sema, so it can't be included/called from SIL.
Could we please move TypeChecker.h to include/swift/Sema? That directory is currently mostly empty for some reason, maybe it's intentional for separation of concerns.
Thanks for the clarification about lookupConformance and conformsToProtocol!
I can't remember specific unresolved issues with ModuleDecl::lookupConformance in SIL but I'll make a note if I come across any. (You previously helped with a SubstitutionMap question - thanks again.)
Type-checking @differentiable attributes where clauses (looking up Differentiable protocol conformances using the right APIs and arguments) has been a longstanding source of issues though. I posted a separate question about @differentiable attribute and cc'd you.