Puppy food is developed especially for his little tummy. It's gentler, and it has the nutrients he needs go grow big and strong. It helps for good muscle development, organ development, and mental strength. Eating dog food won't kill him, but it's not optimal. Your older dog eating puppy food instead, likewise, is not optimal, but it won't kill him.
They may be eating the others' food simply due to personal preference, but here's what you can do. It worked with my little border collie lady who would not eat.
You will need about forty minutes for feeding time. Separate them out, and feed one at a time, watching them. Feed the correct food to the correct dog and give them 20 minutes to eat. At 20 minutes pick up the food, then switch dogs. Give the next dog 20 minutes as well. Then lunch is over. No buts, no arguments, lunch is over. Don't feel sorry for them if they didn't eat--they'll eat if they're hungry, and it can talk them into thinking maybe what you're giving them is not so bad. It's the same thing as a spoiled child. Give them what they don't like and they won't eat it if you'll give them something they do like shortly after. If you've been letting your dogs have the food they do like after they won't eat at first, you're rewarding they're naught behavior.
Therefore, be firm, be focused, and in no time you'll be getting the results you want.