I'm unsure about what tense should be used in a clause that follows 'I've known'. I've seen it followed by the present perfect, the simple present, and the simple past. I don't know which of the following is best or if all could be used depending on the context.
'I was recently diagnosed with ADHD, but I've known that I've had it for years.'
'I was recently diagnosed with ADHD, but I've known that I have it for years.'
'I was recently diagnosed with ADHD, but I've known that I had it for years.'
'I've known that she has been pregnant for a while.'
'I've known that she is pregnant for a while.'
'I've known that she was pregnant for a while.'
I think the top of each three might be best, but what has me confused is that if I change the word order, using the simple present suddenly sounds a lot better:
'I was recently diagnosed with ADHD, but I've known for years that I have it.'
'I've known for a while that she is pregnant.'
Why is that? Why does the change in word order make it more acceptable?