"I had too much to eat" would be past tense, meaning you ate too much, say, last week
"I have too much to eat" is future tense, meaning you went to the buffet and got carried away, now you've got a massive plate of chicken in front of you
So "I have (right at this moment) had (just ingested) too much to eat (and now I'm farting a lot)
Also, in this case "to eat" isn't a noun, it's the infinitive verb
Most people are talking the infinitive case for "eat", but I'd like to point out the verb, "have had", is the present perfect case. Still confusing and still agree with your simplification of "I ate too much". But there's still a meaningful difference between the two sentences.