This problem happens to a lot of people - you're in good company!
Unfortunately, the answer is that you can't
guarantee the captions and image will stick together on every device.
The problem is that not all devices/apps are compliant with the ePub specifications, or just don't render the same code the same way...
My recommendation would be to try putting the text-image-text in an svg wrapper. For those devices that respect svg (I don't think kindle does except for the cover page) that should keep the image and captions together on the same page and scale it all correctly to fit the size of the screen. (Search for svg image here on MR and you'll find several threads)
If you are putting this on a kindle, or other device that doesn't respect svg, you can try wrapping them in a <div> instead with a page-break-inside:avoid in the css...but that may not be honored on all devices either.
The only way I've heard to guarantee it doesn't break is to embed the text into the image with photoshop or somesuch....but that defeats your space saving intent.
Cheers,