When we have a default experience shown & then attempt to update the experience on the same page with an mbox update through dtm, our activity reloads and show both the original version & the new version.
The page itself doesn't reload which is good but we can't seem to remove the old experience, it only appends the new experience.
The issue stemmed from the fact that our data was stored in an array and we needed to only pass the first value of the array to target. So the initial approach was to transform the data on page load and then update target via mboxupdate. This then lead to the issue of target-global-mbox being reloaded on update and having element generated by the mbox double up on the page (banners, etc).
To get around having to do an update on page load, I created data elements that used a custom script to transform the data. Now that they're part of the dtm layer, they're loaded before the initial target-global-mbox load and we are able to pass already transformed data via Global Mbox Parameters in DTM.