You may need to use the Wait feature in-game. The puppy spawns in the same place Dogmeat died, then travels back to Vault 101. The game will tell you the puppy is at Vault 101 before the puppy actually makes it back to the vault. Try waiting for the full duration (one day) at a time, for a few days or even a week. If the puppy does not arrive, try loading an earlier save to see if that fixes the problem.