User has composed and saved content and now delivery is empty (has no content).
User composes Delivery content on the Campaign Dashboard and Saves the Delivery. The "dirty" version of the Delivery is not committed to the database until the Campaign is saved. However, the Save button is not activated at this point.
Next, the user goes into the campaign workflow and opens the Delivery activity there, makes a change, such as entering a subject line or changing the Delivery label and (not noticing that the content is missing) saves the Delivery and saves the workflow. The empty delivery is now committed to the database. When the user next opens the delivery on the campaign dashboard, the content is gone.
There is not really a fix except to recreate the content.
After initially choosing a template and saving the delivery and workflow, only edit the delivery in one place, ideally the Campaign Dashboard.
You can force the Save button to activate by making a change to the Campaign properties, even if you change and change back. Then Save the Campaign.