I am assuming you want the default content to show only when in Live or Preview mode.
Maybe do something like this (my code will be incomplete, just use it as an example. I also don't know if it will work as I have not tested it)
//expose properties for default values for each editable region
public string editableHeadingDefaultText {get;set}
public string editableContentDefaultText{get;set}
public string editableImageDefaultText{get;set}
override void OnPreRender(EventArgs e)
{
if(this.PageManager.ViewMode == ViewModeEnum.Preview || this.PageManager.ViewMode == ViewModeEnum.LiveSite)
{
//do this for each editable region
if(String.IsNullOrEmpty(editableHeading.GetContent()) && !String.IsNullOrEmpty(editableHeadingDefaultText))
{
editableHeading.Controls.Add(new LiteralControl(editableHeadingDefaultText));
editableHeading.Visible = true; // just in case it's visibility is set to false when there is no content, you can test whether or not you need this on your own
}
}
base.OnPreRender(e);
}