Those three represent a very similar idea, though だけでなく is the most commonly used and basic one, ばかりでなく is seen as more formal by natives, and can be seen more often in writing. はもちろん is also seen as more formal than だけでなく, but has also a nuance described below.
AはもちろんB is translated to “naturally/obviously/of course A and similarly B; B, not to mention A”.
So, A is taken for granted and something also applies to B.
Used in sentences like he has a plane, not to mention a car. He has a car of course and a plane.
So if something is not a matter of course, or you just want to simply inform than not only A but also a B then だけでなく/ばかりでなく is your choice.
In other words, every sentence はもちろん can be rephrased to ばかりでなく・だけでなく、 but not every ばかりでなく・だけでなく sentence will sound proper with はもちろん。
Also, だけでなく and ばかりでなく can be used with verbs, nouns, いadjectives, and なadjectives(don’t forget to add な).
While はもちろん can be only used with nouns(so if you want to use a verb or adjective you have to make it into a noun by adding の, process called nominalization).
If you are not sure(in real life, not in app!), you can just use だけでなく as the default one.