"I had a good dinner."
Translation:Bha dìnnear mhath agam.
It's not wrong to say bha mi a' gabhail dìnnear mhath, but it means "I was having a good dinner" rather than "I had a good dinner". If you want to use gabh for "I had a good dinner", you could say ghabh mi dìnnear mhath (ghabh is the past tense of gabh, which Duolingo hasn't covered yet)
I think this is a mis-translation of an English idiom. "I had a good dinner" means "I ate a good dinner", not "There was a good dinner in my possession". Similarly, "I had a good bath" would imply hot water, bubble bath and rubber ducks, not a well-built enamel tub with gold fittings, although "Bha amar math agam" would mean the latter.