So, I inspected FillBaseProperties(model) in the Sitecore.XA.Foundation.MVC dll:
IRenderingModelBase renderingModelBase = (IRenderingModelBase)model;
renderingModelBase.Item = this.Rendering.Item;
renderingModelBase.PageItem = this.PageContext.Current;
renderingModelBase.Rendering = this.Rendering;
renderingModelBase.DataSourceItem = this.Rendering.DataSourceItem;
I found that on first load, the this.Rendering.DataSourceItem was populated with Sitecore Item GUID, however, on subsequent page refreshes, it was null. The this.Rendering.DataSource was always populated with "local:/Data/myDataItem".
Sitecore Support have confirmed that this is a bug (reference number 362374) and have suggested the following fix which resolved our issue:
Go to App_Config\Modules\SXA\Foundation\Sitecore.XA.Foundation.XConnectIntegration.config and change the following entry:
<mvc.customizeRendering>
<processor patch:after="*[@type='Sitecore.ContentTesting.Mvc.Pipelines.Response.CustomizeRendering.SelectVariation, Sitecore.ContentTesting.Mvc']" type="Sitecore.XA.Foundation.LocalDatasources.Pipelines.CustomizeRendering.ResolveRenderingDatasource, Sitecore.XA.Foundation.XConnect.Integration" resolve="true" />
</mvc.customizeRendering>
To the following one:
<mvc.customizeRendering>
<processor patch:after="*[@type='Sitecore.Mvc.Analytics.Pipelines.Response.CustomizeRendering.Personalize, Sitecore.Mvc.Analytics']" type="Sitecore.XA.Foundation.LocalDatasources.Pipelines.CustomizeRendering.ResolveRenderingDatasource, Sitecore.XA.Foundation.XConnect.Integration" resolve="true" />
</mvc.customizeRendering>
Also make sure that your web.config has the following app setting with the value 'sxaxconnect':
<add key="sxaxm:define" value="sxaxconnect" />