I have a comment about the 5th grader. Keep in mind that it's ok to tell him the rules of your house. It's ok to say "Hey, we don't say XXX in our house" when he says something is stupid, or "We don't spit here." If the opportunity comes up, you could even say to him in a conspiratorial way - "You know, since you are older than my son, he looks up to you. That's a big responsibility, and so you need to be a good example when you play with him." You could sort-of get him on your side this way, showing him how to play somewhat of a big brother role to your son.
As for the rules issue with your son - I have that conversation with my kids straight up and often. For example, if we get to the playground and see kids doing something that I would not be ok with, I tell them directly "I know kids here are doing/saying XYZ. I'm not their mom and I don't make their rules. But I am your mom and that means I make your rules. Please remember that you are not allowed to do that. It's not safe/kind/whatever."
And I don't tolerate "but he was doing it" excuses. If your child has been told that particular words/actions are not OK, then the next time it happens, he gets whatever consequence you use in your house (sent to room, loss of privledges, etc). If that means that a playdate ends in the middle, with the friend getting sent home when the kid gets sent to his room, so be it.
ETA: I don't get the resistance to the 5th and K kids playing together. My 5th grader plays with his 1st grade brother all the time. Yes, they are brothers. But the point is that they still have plenty of interests in common. And playing with a younger kid sometimes gives they older kid an excuse to play those games that he still likes, but can't admit to enjoying now that he's supposed to be 'cool'. It can be a really nice break from peer pressure for the older kid, and as long as the older kid is a nice kid, he can be a good role model. You just need to kindly let the older kid know what your rules are so that he can be the right kind of role model.