Ah, I can move it out of the player controller. That was probably an oversight on my part.
The 1920*360 element makes up the entire background at the bottom - all the grey squares are that, and the individual other elements are the 96*96 sprites to make up the buttons (white with green arrow, white with red arrow explosions etc.). That element is the entire thing at the bottom, the gap in the middle is achieved with transparency in the texture. There are multiple panels, but none share the same depth (i.e., if I change one of their depths to a value I know is shared, the warning about depth sharing panels appears, and if I change it back, this disappears).
I'll move the UI controller out, probably just a misunderstanding on how it worked on my part, but the depth things I've scoured thoroughly and I'm fairly confident about that - the problem is that despite not changing numerically in the inspector, the depth definitely does change behaviourally, as anything I disable and then re-enable goes behind everything else. If I remove the context-sensitive disabling and re-enabling, everything works as I would expect and there are no depth issues, I am pretty sure the problem lies somewhere in the disable/re-enable process, not my depth tree, as it only becomes an issue if I disable and re-enable a button, it goes behind the background sprite, and then disabling and re-enabling the background sprite, puts it back behind the button.