Are you entirely honest to yourself? If your answer is no, you cannot be happy from the bottom of you heart.
Are you aware of the situation you are in all the time (Do u know how to react under whatever circumstances?)? If no, you dont think enough!
Every problem has a solution, have u found the one to your biggest problem?
I am not sure at the moment if I am like what you talked about or not, but what I do is keep my mind open, keep absorbing new things. Do not rush, just let things take their time, slowly, gradually, the new things will build up a very different you.
Things have a very funny way of turning out right at the end.:-)