Your current approach to reviewing seems good and I recommend you continue this way. If you are not satisfied with a situation, find the reason that led to the situation. Sometimes it is an immediately prior move, sometimes a mistake in fuseki.
If you are having trouble to find the underlying reason, or a better solution to it, you should show your game to someone else who is as strong (more eyes see more) or stronger than you. In the past, there was the Go Teaching Ladder GTL (in which I participated, it was fun!), but it sadly shut down a while ago. You can still ask on KGS in the KTL room. Surely there are some other opportunities, too. One of the things that I find fascinating and enticing about Go is that many people really like to help.
I recommend strongly against using engines like CrazyStone. They always consider the whole board, and will recommend moves that are not helpful in understanding the problem. They might be more valuable when you are strong (definitely dan level, probably high dan level) - but when you are that strong, you can already find better moves yourself. Of course, This may change when stronger engines become available.
I also know of no Go engines that take future positions into account. (I believe it is different in chess!) That is to say, when you believe a certain move leads to trouble (much) later on, even in a sequence that can hardly be deviated from, then there is still not way to make the engine aware of that fact. It will happily suggest moves that are bad, only to notice its mistake a few moves later. It seems to be impossible to fix this in our current tools - search depth grows so quickly that letting it search longer often does not help.