A bit more information on the 'Add to QAT' problem. I added a handler for ContextMenuOpening on the MainWindow in my sample app. When the handler is called for the working ribbon, e.Source is the Button element, but for the non-working ribbon it is the ApplicationMenu element. In both cases e.OriginalSource is the Border or Run from the Button's template depending on where I click.
Hope this helps.