They overlap a lot…
昔話 (むかしばなし) = an old tale (including folk take/fairy tale), a legend, stories of one’s past.
御伽話 (おとぎばなし) = a fairy tale (but can be translated as an old tale too)
メルヘン童話 (めるへんどうわ) = a fairy tale for children
童話 (どうわ) = a children’s story (including folk tale, fairy tale)
民話 (みんわ) = a folk tale, a legend