General question about mathematical thinking
Mistakes in calculations plague mathematicians at all levels. Here's what Vladimir Arnol'd had to say about it:
"Every working mathematician knows that if one does not control oneself (best of all by examples), then after some ten pages half of all the signs in formulae will be wrong and twos will find their way from denominators into numerators."
The best way to catch mistakes in calculations is using 'sanity checks'. The most basic versions of these go back to elementary school (did you get a negative number for the volume?) and at the more advanced level you might plug in different values of x in your formula, let x go to infinity, etc. If you proved something about a group or a manifold, see what it gives you in a specific example. If you can think of another way to do the same calculation, that's best of all.
When you say "I just give up after making the same mistakes and reaching dead ends for two hours, look at the solution and don't understand how I could have come up with it on my own", it makes me think you're working on something too difficult. Find easier problems to work on first, build up your skills, and then come back to the harder problems later.
Also, keep poking around different subjects until you find where your strengths are. I've found in my own life that abstract algebra has always been and remains confusing and difficult. Calculus, differential equations, asymptotic analysis came much more easily. Complex analysis used to be torture, but now I've gotten pretty good at it and consider it one of my strengths. If something is really making you suffer, drop it for a while (maybe months or even years!) and then if necessary come back to it later when hopefully your increased mathematical maturity will make it easier.
Mathematics uses one thing: This is simply sticking to the definitions what already has been proved. The basic point is that you don't have to be a quick calculator in order to be good at math.
I can only agree with math postdoc: When I started learning differential geometry, I was more han confused. I wasn't able to perform the most simple calculations. But actually, that will become better and better as time passes.
If you rejoice in repetitive actions (as I do for instance) then it is a good way to keep repeting what you've learned so far, or what you're interested in all over again. I think I have read one book on differential geometry more than 10 times. After you have once read an entire book, deal with somehing different first, something that seems more difficult to you, then read the book you read initially again. Since you've already understood what it is about, your brain will start focussing on the things that are important for it, i.e., how to work with that stuff practically.
When I started with math (I was still at school - but due to external studies, I was able to work through a flexible mathematical curriculum.) and once had to calculate some volume integral, I had to spend one month on this exercise until, the day before a final chemistry exam, I came across the solution. I was so happy that I couldn't sleep anymore and was really tired during the exam so that I didn't score as a high as I regularly did.