Make sure that you're provisioned page layout is not unghosted (= customized) and only deployed through a WSP using a module referencing it as default text / unchanging page layouts are more than often the symptom of a customized file (SharePoint designer anyone ?)
eg:
<Module Name="PageLayouts" Url="_catalogs/masterpage" Path="PageLayouts" RootWebOnly="TRUE">
<File Url="your-custom-page-layout.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE">
<Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
<Property Name="Title" Value="Your page layout title" />
<Property Name="MasterPageDescription" Value="..." />
<Property Name="PublishingPreviewImage" Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/WelcomeSplash.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/WelcomeSplash.png"/>
</File>
GhostableInLibrary is the key to have your fill relying on its initial definition in the 12/14/15 hive.
Within your page layout, any webpart zone will be consumed and used as defined.
eg (see at top & bottom, the 2 custom WPZ defined):
<%@ Page language="C#" Inherits="APB.SharePoint.Core.UI.PageLayouts.PageLayoutBase,APB.SharePoint.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0e9e449d7f998c48" %>
<%@ Register Tagprefix="sp" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="sp" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="sp" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitle" runat="server"><sp:FieldValue FieldName="Title" runat="server"/></asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitleInTitleArea" runat="server"><sp:FieldValue FieldName="Title" runat="server"/></asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
<sp:WebPartZone runat="server" NoTableWrapping="true" AllowPersonalization="false" ID="WebPartZoneHeader" PartChromeType="None" Title="WebParts Zone Header" Orientation="Vertical" />
<%-- Display Mode ============================================================================================== --%>
<sp:EditModePanel runat="server" PageDisplayMode="Display">
<h2><sp:FieldValue runat="server" FieldName="Title" EnableViewState="False"/></h2>
<sp:FieldValue runat="server" FieldName="PublishingPageContent" EnableViewState="False"/>
</sp:EditModePanel>
<%-- /Display Mode ============================================================================================= --%>
<%-- Authoring Mode ============================================================================================ --%>
<sp:EditModePanel runat="server">
<h3>Page Content:</h3>
<sp:TextField runat="server" FieldName="Title"/>
<sp:RichHtmlField FieldName="PublishingPageContent" InputFieldLabel="Main Content" HasInitialFocus="True" MinimumEditHeight="400px" runat="server"/>
</sp:EditModePanel>
<%-- /Authoring Mode =========================================================================================== --%>
<sp:WebPartZone runat="server" NoTableWrapping="true" AllowPersonalization="false" ID="WebPartZoneFooter" PartChromeType="None" Title="WebParts Zone Footer" Orientation="Vertical" />
</asp:Content>
The page layout is for SharePoint 2013 but you can easily change the reference for 2010. it's just given as demonstration of having a custom webpart zone within a custom page layout.