So it wasn't as hard as I thought it was going to be, I just changed everything in the project that said "Window" to "UserControl". Then used an ElementHost with the panel created by OnDockablePanelCreated.
It works in any of the panels but I can't change the height in certain spots, like if I put it above files in the main panel (pictured). If I put it underneath the files panel it fills the screen to the right and I can adjust it's height. I guess I can just set the height in the code and show it as an option in the config panel.
Mouse wheel events are not registering. I have it programmed to move one album left or right when the mouse wheel was rolled but it's not doing anything, I think its something do with it not getting focus. Not a big deal. Mouse clicks work fine. I have a right click context menu that is showing up allowing the user to change how the albums flow and the skin. So I don't need any special mouse controls.
What would be good is having the same behaviour as the "Track Information" panel. When you click on a song it changes to the show the track info. If I could set this plugin up so when the user clicks on a song, the cover flow scrolls to that album it will be exactly how iTunes cover flow used to work. Currently its only doing that when a song is played.
One downside is CPU usage sits on 10-12% even if musicbee is minimised, basically because it's drawing that window constantly even when it's just static. Limiting FPS to 30 instead of 60 gets it to 6%. But I have a feeling it's going to be a bit worse with higher quality artwork. When it's unlimited it's maxing out around 100fps and it should be a lot higher than that with my current hardware, I need to go over the code again.
Still a few more things to fix up in the background but it's almost ready for release. Pretty happy with it so far.