Is this idiomatic in German? Although I know it means what it says word for word something tells me there is a different way to put it in German
It is: https://www.dict.cc/?s=sein+Wort+geben
Wort is meant like pledge here ("Ich gebe dir mein (Ehren)wort"). It's definitely a common expression in German.
Yes, it is. It means "I promise"
Why is "Ich habe dir mein Wort gegeben" incorrect?
That's past tense and would mean 'I gave you my word'
Why is this not "Gebe dich"? I thought 'Gebe' takes the accusative 'dich' and not the dative 'dir'?