DistressedMum, I feel for you. You clearly love your DS. Unfortunately, that is not the evidence SS will be looking for when deciding your boy's future. Love is not enough.
Looking back, you said that the bruise on his cheek was caused by a fall. Now there is a bruise that shows teeth marks -is that the same bruise, or a different one? Did it surprise you to know there are teeth marks on your DS? I'm trying to understand how you could not have noticed them?
We all get conditioned to our own lifestyles. It seems normal to us. But from an outside observer, your account of your lifestyle is really quite chaotic. From SS point of view, I would think it is almost more concerning that you didn't know your friend's history. What if he'd been someone who had an even worse past?
I'm not trying to make you feel bad, but I don't know anyone with that sort of history, let alone have them staying in my house. I can't imagine getting in an altercation severe enough that police would be called and my child's life would be threatened.
I'm not suggesting that this is you, by the way. But, you do need to think about the company you keep. You're child comes first, and if you are keeping bad company, that's enough to cause you a problem.
I remember watching a documentary about children in care. A social worker read a child's story to them. It said 'Mum and Dad really loved me, but they spent time with risky people, and didn't know how to keep me safe. The risky people weren't good for me...'
At the end of the day, it won't matter if the risky people are the parent, or the people the parent spends time with. As a parent your job is to protect your child.
I hope you can turn this around, but reading between the lines, if you want your child back, you need to be prepared to cut your ties with anyone 'risky' and change your lifestyle radically.