When do we use each of the following cases? Is there even a difference between them?
中国歌 means "China song" or "Chinese song"; 中国 (China) is an adjectival noun-- the song is either about China or it is in the Chinese language.
中国之歌 means "song of China"; 之 is a (relative or true) possessive determiner-- The song is either about China or China actually possesses the song.
中国的歌 means "China's song"; 的 is a (true) possessive determiner-- China actually possesses the song.
Difference between true possessive and relative possessive:
之 in 将死之人 is a relative possessive determiner. 将死 is not a noun, therefore it can't possess the object 人. 之 only indicates 人 belong to the state of 将死.
If 中国 in 中国之歌 is the subject noun, then 之 would indicate the song belong to China--it is China's song.
If 中国 in 中国之歌 is an adjectival noun, then 之 would indicate the song is about China.
Besides the lexical differences identified by others, in daily circumstances, typically 中国歌 means a song published from China in Chinese by Chinese people with China style.
中国之歌 means the song is about 中国.
We are the Champions is a 冠军之歌
Sweet Home Alabama could be a 阿拉巴马之歌
中国的歌 means from China
关于什么什么的歌 equal to 什么什么之歌
冠军之歌 = 关于冠军的歌
中国的歌 is almost never used it sounds like 中国 is the author or singer of the song. Like usually we say 周杰伦的歌 Jay's song.
中国歌 Emphasize on the cultural nationality of the song. It differs from 新加坡歌 Singapore song which might also be in Chinese language
中国之歌 Means the song can represent China. It is a high honor to say so about a song. For example 长江之歌 is not A random song about 长江. It is THE song you are going to think about whenever you mention 长江 in a conversation.
The mostly used expression is actually 中文歌 or 华语流行歌（Chinese pop song）to mention the language instead of the nationality.