Howdy Higgledy,
What
you should do is go over the exercises that you failed, and write an essay about the workings of the code in depth, and why the outcome is what it is and not something else. Then post your essays/explanations here along with the code, and we can correct as necessary.
Asides from that, if you really understand something, then the only help you can get is from a lot of thinking, writing your own code, and doing a lot of mockups. But bear in mind that really understanding something and being able to understand someone's explanation of any type of phenomena (in this case OO) are different things. In order to really understand something you have to make it a part of your brain, so that you are not forced to consider all possible explanations and follow lengthy trains of thought when you are confronted with a question.