Have a look at the hidden text sample, that might help.
The hidden text sample, like most samples, is very simple, and thus it has only two interfaces on the panel widget boss. In such a simple case I can make it work too. My problem is that I cannot add two interfaces with IID_IOBSERVER to the panel.
I have now tried to replace IID_IOBSERVER by IID_ISELECTIONOBSERVER like in LinksUIPanelSelectionObserver, but in this case I'm not notified.
For notification subscriptions an observer can have any IID, as you found you can take IID_ISELECTIONOBSERVER, or any private one.
When widgets are shown / hidden, AutoAttach/AutoDetach of their IID_IOBSERVER is invoked automatically. If you need a secondary observer on the same boss, you have to query that other interface from within your IID_IOBSERVER observer, and chain the AutoAttach etc. calls.
If you put your observer on a non-widget boss, you also have to find a way to invoke AutoAttach/Detach from outside, for example using a responder.
The ISubject calls to attach/detach an observer to the subject also have an additional IID parameter for the very same IID.
For completeness sake, if you use CObserver it has a separate constructor argument that sets the internally stored AttachIID to different IID - use IID_ISELECTIONOBSERVER or whatever IID you chose in the object model. The underlying partial implementation for the selection observer should pick it up from there when it does its own attach/detach.
Finally, you must never ever reuse implementation IDs from the SDK for own implementations, or boss IDs for own bosses. You got your plugin ID space for a reason - to prevent collisions.
Great, now it works. The important information was that I must call AutoAttach on the second observer, because InDesign calls only AutoAttach on the observer with IID_IOBSERVER.