First rule - no eating or drinking on the sofa! lol. The marks you describe are all grease based & will respond best to washing with detergent. I would use shampoo on the head marks & washing up liquid on the food. Use biological washing powder/solution on things like milk. Also a warm solution of the oxi-action laundry products can work well. However, be careful that each of these will not change the basic colour. Also if you'vehad the sofa for a while & never shampoo'd it with a carpet/upholstery cleaner you may end up with paler cleaner patches! Use a sponge to apply & old towels to blot out as much moisture as possible. Once clean, use a decorative throw over the back, to keep 'head' marks at bay. Or cover the whole thing whilst your boy's around. Unless it was a very expensive 'once a lifetime' purchase I would resign yourself to the fact that from now until he's, oh, about 15yo you will need to regularly shampoo your upholstery & then buy yourself a lovely sofa when he leaves home! lol. Hope this helps - good luck.