Hi Mark,
The Ribbon controls are touch compatible, and act the same way as native WPF controls in regards to touch, since they are designed in the same fashion. For instance, I put together this test to run on my Surface:
<Window x:Class="WPFTouchHoverIssue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Touch Test" Height="600" Width="800" FontSize="30">
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="File" Padding="40,20">
<MenuItem Header="New" Padding="40,20" />
<MenuItem Header="Open" Padding="40,20" />
</MenuItem>
<MenuItem Header="Edit" Padding="40,20">
<MenuItem Header="Cut" Padding="40,20" />
<MenuItem Header="Copy" Padding="40,20" />
<MenuItem Header="Paste" Padding="40,20" />
</MenuItem>
</Menu>
<ToolBar DockPanel.Dock="Top">
<Button Content="Regular" Padding="40,20" />
<ToggleButton Content="Toggle" Padding="40,20" />
</ToolBar>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button Content="Regular" Padding="40,20" />
<ToggleButton Content="Toggle" Padding="40,20" />
</StackPanel>
<StatusBar DockPanel.Dock="Bottom" FocusManager.IsFocusScope="True">
<Button Content="Regular" Padding="40,20" />
<ToggleButton Content="Toggle" Padding="40,20" />
</StatusBar>
<TextBox />
</DockPanel>
</Window>
If you focus the TextBox and then tap on the toolbar buttons or the buttons in the statusbar (both of which are in focus scopes) you can see how the mouse leave isn't passed by WPF to them. The same thing is the root of the problem with our Ribbon controls. Ideally after a tap was done on a control, the WPF system would pass a mouse leave event as well since that would solve the problem everywhere.
I'm not saying what currently is happening is good or desirable. I'm just saying that is the reason it's occurring. We're open to suggestions on how best to handle this scenario, and any ideas we come up with could be tested on the simple native WPF control XAML above.