'Today, I have my twentieth birthday' should be an acceptable, more literal rendering.
Are you a native English speaker? It doesn't sound like idiomatic English.
I am a native English speaker and it doesn't sound wrong to me, although the default translation is undoubtedly more common. But one can certainly 'have one's birthdays' in English.
FWIW, my personal (AmE native) feeling about "Today I have my twentieth birthday" is that, while it is a literal translation of the Czech sentence, and while it might be used by some, it sounds strange and is more likely to be used by ESL speakers. More importantly, I think the teaching purpose of this sentence is to show that where English uses "Today IS my birthday," Czech uses a different construction to make the same point. (Just my opinion...)