Great question! Here's how I understand them:
The most general of the three. Basic "hard/difficult to do ～" meaning.
You can see that it comes from
辛【つら】い which can mean "difficult" or "painful". So
～づらい is usually a more subjective meaning, whereas
～にくい is usually more objective. Also,
～づらい is limited to actions that are intentional.
Very difficult to do. "Virtually impossible". The most expressive of the difficulty.
So I would say that
(～にくい <=> ～づらい) <<< ～がたい. Also notice that
～がたい have the same kanji. In practice, I don't think they're ever written in kanji, but if you were to see it, I don't know if even the sentence context would help you know which one it was.
2) What is the difference (and are all 3 acceptable?) between:
Yes, they would all be acceptable, but would be used in different scenarios/contexts according to the definitions (exercise left to the reader).
UPDATE ー According to the PDF posted by @Derek Schaab below,
分かりがたい is not acceptable because
分かる is not an 意志動詞. However,
理解しがたい is acceptable in its place.
NEXT UPDATE ー I wanted to add this example that I've been thinking of for a while. Hopefully it will be helpful to someone.
- [バント名]の好きな曲は何？ → What is your favourite song by [band name]?
- 選びにくい………てか、選びづらいのだ。まー、やっぱりそれよりも選びがたい。 → (roughly) It's hard for me to choose....rather, it kind of hurts my brain to try to choose one. Actually, it's almost impossible for me to pick (which one).