Are there any differences between the following?
I think this is actually a place where the Chinese-imported kanji obscure the usage of native Japanese words.
The etymology of all these words (and 書く) is the same 和語 of かく, which has the original meaning of "scratch in" and eventually "write". Then, えをかく meant "to scratch/write a picture", which eventually became えがく.
From the historical perspective, I think it is not too hard to see why かく basically means putting something to paper, while えがく means expressing, visualizing, picturing something (onto paper, but metaphorically, other non-physical places too).
えがく has the following meanings listed in 大辞泉:
かく only has the following meaning (ignoring 書く of course):
In other words, かく can't have meanings ２〜４ of えがく (i.e., the ones that involve "picturing" something.) And even with meaning １, えがく makes the "expressing as picture" aspect of it clear.
So, borrowing this illustrative table from 類語例解辞典:
花をかく 三角形をかく ｘバラ色の人生をかく ｘ心にかく
花をえがく ｘ三角形をえがく バラ色の人生をえがく 心にえがく
For 花, you can draw a flower with or without being explicit about the "expression". For 三角形, it does not make sense to "express" it, so えがく doesn't work. For バラ色の人生, you're not actually drawing it, you're only expressing it. Similarly, 心に is not a physical place, hence you're expressing/picturing it (in your mind, in this case), not actually drawing it.
You can basically always use えがく, unless it's something you can't "express", like 三角形、グラフ、図、横線, 絵, etc. Though, since the "expressing" is explicit, it has a different feeling to it than かく.
As far as I can tell, there is no difference between using 描く or 画く. However, えが and か are not listed as 訓読み of 画 in the 常用漢字, and checking in BCCWJ, 描く (2772 hits) is a magnitude more common than 画く (17 hits). So 描く seems like the safe choice.