To answer your first question (how to learn Haskell), I'd say that you need to actually code in it. It sounds like you read the many chapters of Learn You A Haskell, but they made your head swim. Go a little slower, and -- more importantly -- follow along, by typing and evaluating the code. You say that you "don't know where to start writing a program in Haskell." The practice of actually writing and executing the examples will be exactly what you need to get a feel for how the code works, and where to start.
You're probably not quite prepared for the answer to your second question (when to use Monad
and when to use Applicative
) -- work through LYAH, though, and you'll definitely know when to use each.
As far as directed graphs specifically, this is a good resource (the Amazon reviews aren't very good, but I think it's a great introduction to the concepts of graphs and abstract data types in Haskell).
Good luck - Haskell is well worth the struggle!