I am so sorry you are going through this. I have had something like this in the past and I just want you to know that you can get through it. Finding out what is causing such a myriad of symptoms can be difficult and might involve a number of different doctors plus your parents, your friends and even perhaps a professional counselor to help you deal with the symptoms until you get it figured out.
I would tell your parents that you want to go to your primary care doctor and have him/her do a complete blood workup on you. This would include a CBC (complete blood count), a metabolic panel, thyroid tests, and other blood tests to test for autoimmune disorders such as rheumatoid arthritis, lupus, etc. If you can rule some things out then it will be easier to handle your symptoms as you try to continue to get this figured out. Do you have health insurance that can assist in getting some of these tests run ? You may have already done this but if not, this is where I would start. Once you get these results back, you may find out what is going on. Or you may feel some amount of relief that you have ruled out many of the serious causes of your symptoms.
I have to say I am very impressed that someone of your young age would seek out a forum such as this to try to find answers. I do not know too many 12 year olds that would have the presence of mind to reach out as you have. You should know that you have taken a very good first step. If by chance you do not have a primary care doctor that you are comfortable with, I strongly suggest you talk to your friends or family to gain a referral to a good and caring doctor to go to for testing. I have learned that being able to talk openly with your doctor is very important, particularly when trying to diagnose very difficult symptoms.
Please stay in touch with us here at Mayo Clinic Connect. We are not doctors but many of the people here know about a lot of resources that may be helpful to you.
Take care of yourself and have faith that you will figure this out even though it may take some time.