I also encountered this problem with images placed in a function-generated page markup.
For example I would create a new page and it would generate a <div class="headerImage"> for me. I would insert a media image without caption inside this div and save. Then I would enter an image caption and save – but the caption would disappear after saving.
The quick solution was to remove the image, and insert it again with the caption already saved.
I had the same problem, then I deactivated the WP E-Commerce plugin and it started acting normally again.