I have tried to reproduce this issue in a sample project but without much success - OnApplyTemplate is fired only once - when the hidden pane is changed to visible. After that switching its visibility does not fire the event.
As to the DataContextChanged event - it is expected to be fired as the pane is taken out of the VisualTree and then added again. This can be observed even if you switch the Visibility property of the custom control without changing the pane.
Please check the attached project and tell us whether we are missing something. Thanks in advance.
the Telerik team