OK, I found the answer to this in the 2012 release notes, appendix A:
"Every time a new workspace is created (when creating a new project or loading one), it needs its own DataSourceManager. So caching the DataSourceManager is obviously not working anymore and sub-scribing to the DataSourceManager.Saved events should be done every time the project is opened. The best place for this is in a DataManager.WorkspaceEvent.Opened event handler."
The solution that works for me is along the lines of:
public void Initialize()
{
DataManager.WorkspaceOpened += ProjectOpened;
}
private void ProjectOpened(object sender, EventArgs e)
{
DataManager.DataSourceManager.Saved += DataSourceManagerSaved;
}
private void DataSourceManagerSaved(object sender, EventArgs e)
{
whatever needs doing on save...
}