I don't think there's anything wrong with you!
It's just that your sleep routine is messed up. Why? Because you said that you cannot fall asleep before 5am and then after you do fall asleep you could sleep all day. This is a typical case of messed up sleep routine. It goes in cycles. Because you fall asleep late, you can't get up in the morning.
You need your sleep and body doesn't really care that much when you sleep, as long as you get your 6-8 hours of rest.
Try this: skip sleeping tomorrow. Don't go to bed at all. Watch tv, go outside, do something to make it trough the night. The next day go to sleep at 10 in the evening. I'm sure you will sleep like a baby. Sleep until 6 in the morning - set the alarm to go off at 6. Repeat this process until your sleep balance is established again. Here's some general sleep tips
if you cannot sleep - take a look, maybe you find some information useful.
Regards, JB