I knew you have/had your reason for saying so.
Which verb should I use? Thanks.
Since you're saying "I
knew," you're recalling a time in the past when the other person said no. I would say "had" feels more appropriate in that case.
However, I think the most natural way of saying it (to me) is "I
know you had your reason
s/
a reason for saying so" for talking about a past incident, or "I
know you have your reason
s for saying so" talking about the present or in general. When you say "I
knew," it stresses that at the time in the past I knew you had reasons - and maybe that's what you intend to say. If you're saying in general that "I understand there are reasons why you said what you said," I think "I
know" is more appropriate.
(not a teacher, just a language lover)