第一个句子前半截Jill didn't repair the roof herself里面,didn't就已经表明了整个句子的主时态是过去式,所以She had it repaired里had是句子的谓语,而且又因为是过去时,所以要用have的过去式had.“Jill没有自己修屋顶.她是请人修理的.(整件事都是发生在过去)”
第二个句子的回答To have it serviced.这里面是to do (也就是不定式),这里不定式是表目的的用法——— take your car to the garage的目的是have it serviced.这里To have it serviced的前面 实际上为了避免与前面take your car to the garage重复而被省略了,如果改完整的话就是:I took my car to the garage to have it serviced.过去时态就是体现在took上的,have是不定式结构的成分,不是句子的谓语,所以就用have而不是用had.
希望对你有所帮助.