Attached is an image showing the primary issue (top and bottom right): sometimes, some of the UI elements don't get cleaned up when skinner is closed. Initially, I noticed this error in logs when it happens:
NullReferenceException: Object reference not set to an instance of an object
at Oxide.Plugins.Skinner+BoxController.OnDestroy () [0x000c0] in <d600f4f3223b46b1a12eddfd22098c4f>:0
So I checked out this function and saw that it happens here:
if (backpack != null)
backpack.contents.onPreItemRemove -= PosWatch;
All I did to fix it was mimic what you do in StartItemSkin method and also check to see if backpack.contents is null, e.g.:
if (backpack != null && backpack.contents != null)
backpack.contents.onPreItemRemove -= PosWatch;
Hope this helps anyone experiencing the same issue.