I was able to reproduce the described by you issue and it is actually caused by the Loaded and Unloaded events.
When the DataGrid is removed from the Panel (from the visual tree) it is expected the Unloaded event to be thrown. At the same time when it is added to the Panel (to the visual tree) Loaded event is expected to be thrown. However, it seems that not always the Unloaded event is triggered before the Loaded one. In the DataGrid there is an implementation that relies on the exact order of that events - first the Unloaded should be thrown and after that Loaded. Because the events are not always thrown in that particular order an issue occurs. I have logged it in our Feedback portal on your behalf:
The only possible workaround that currently I can suggest you is to put some delay before the DataGrid is placed inside the second Panel. Please, check the attached project that demonstrates how to achieve this.
I apologize for the inconvenience the issue might be causing you. Your Telerik points have been updated for bringing this to our attention.
If you have any additional questions or concerns please, let me know.
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Telerik Feedback Portal
and vote to affect the priority of the items