I already answered the exact same question for someone else, and I got chosen for best answer, so I'll just copy and paste what I said before.
The reason you're having problems is because the game only saves if you complete a castle or enter a new area (example: if you just completed all of world 1 and entered world 2, the game would ask you if you want to save).
An easy, but time consuming way to overcome the issue you are having, is to enter a previously completed castle and complete it again, because every time you complete a castle the game asks you if you would like to save your progress.
Every time I finish a level, I travel back to world 1 and complete the world 1 castle again. This may be time consuming, but this method allows you to save your progress every time you complete a new level (example: if I just finished world 1-4, I would then go to the world 1 castle, complete it, then save my game, so the next time I turn on my Wii and play New Super Mario Bros Wii, I don't have to complete previously completed levels all over again).
Hope this makes sense to you.