Well first of all, you should know you are doing everything right! But, I'll break down what's actually happening to your HP EV's.
To start off with your Power Weight , you gain 4 extra HP points for every Pokemon fainted. With your exp share on, you probably know that all your Pokemon in your party will receive the appropriate EV, depending what Pokemon you verse. So, by battling a Whismur (which yields 1 HP EV) your Power Weight will allow Munchlax to gain 5 HP EV points per Whismur (1 for Whismur + 4 from Power Weight). However, by battling a Pokemon that doesn't yield HP EV's, you will still get 4 HP points from Power Weight, as well as whatever EV the Pokemon you versed/fainted would give. *Also note that Power Weight will half your Spd in battle, so Spd EV training is your choice; however it won't be ideal since Snorlax is already very Slow.
So, in this way, theoretically your Munchlax would gain 25 HP EV's in a single Whismur horde battle, once it's holding Power Weight, and it has exp share turned on if in your party, otherwise Munchlax being your leader.
Something else worth noting is that each Pokemon can have a total of 510 EV's distributed whichever way in your stats. One stat can have a maximum of 255, but it's only beneficial to have 252 (since 4 EV's = 1 extra stat point). So you should only train HP EV's to 252, and worry about the rest on other stats.
To ensure you can keep track of your EV's, here's something you can do in Pokemon X/Y.
If you have a reset bag in your super training section:
1) Save your game
2) Use reset bag (the EV's per stat will be shown). DONT SAVE YOUR GAME AFTERWARDS!
3) Once known, reset/restart your game. Your reset bag will be back, and you will have the intel of your Pokemon's EV's
Hope I helped! :)