You sound to be like a perfectly normal 21 year old. In regards to money problems, identity issues, problems with the opposite sex, feeling peer pressure (I promise that gets alot better when you get into your latter 20s). Some people say the 20s are about figuring out who you are. Seperating yourself from your peers and finding your identity (where you dont care what others think and you dont do things to impress people). Its easy to say 'just be yourself' but its harder to do. All I know is for me that all came in time, I was just as confused as you at your age.
You'll find you'll start feeling more comfortable with girls as you get older. Do you have female friends? thats a great place to start. I used to be very shy around guys, but now I have many guy friends and feel comfortable with guys now. Maybe at work or school?
You just feel too skinny? Embrace it! I love skinny guys I think thin guys with broad shoulders are sexy and as you get older, you'll see people around you gaining weight, at least you dont have that problem.
The virgin thing...what's wrong with being a virgin? I think its awesome. I personally am waiting to have sex til I'm married and I'm 29. People look at me in amazement like I'm a freak of nature, but I dont care. I care what God thinks, not other people. You might feel embarressed, but I would only think better of a guy who was a virgin. You dont have to worry about
: SDTs, many of my close friends have herpes, one of my friends died of AIDS and another has it, I dont have to worry if I'm pregnant (you dont have to worry about getting a girl pregnant). NO SHAME IN THAT! You know you are emotional and physically not ready.
Are you keeping yourself busy? Do you work or go to school? Have hobbies? Try chairty work...its a great way to get the focus off yourself. Start doing kind things for others (not saying you dont) but you will help others and feel better about who you are.
I am sorry about your mom, I hope shes ok. Things will get better with time..I hated my early-mid 20s. Hang in there!