The laying down thing can either be a submissive or dominance act, it's something I'd have to see the dog do to actually make a conclusion. I can't tell you why the dog does that, it may have something to do with his past owners, but something that could help him would be everytime you have a male guest, let him give the dog a special treat (something he doesn't normally get ie; hot dog, bologna, chicken) and pet him so he associates male figures with something good. You keep at it for a period of time and it should get rid of this behaviour.
When you come in the house and the dog start to jump on you, turn your back and ignore him until he calms down and sits in front of you. Then praise and give him a small training treat to let him know that's how you want him to act. This can take a while or can be rather quick for him to learn, just stick with it and let all your guests that come in the house to do the same. He'll get the hang of it. Also like Mike said when you get home take him outside to play so he gets some energy then let him back in the house and do the same until he sits next to you. Then reward him for his good behaviour.
But I agree, if the dog is not being used to for breeding, (you said it's a mix so it shouldn't be) then it should be spayed/neutered no matter what the dog is. I have three unspayed breeding Corgi's and they can be a handful.