Проблема в том, что стиль применяется к дочерним элементам меню ContextMenu. Поскольку они сами являются ItemsControls, внуки выбирают ItemContainerStyle из стиля MenuItem. Я бы предложил вытянуть стиль MenuItem в отдельный ресурс, а затем использовать его так:
<Style x:Key="menuItemStyle" TargetType="{x:Type MenuItem}">
...
</Style>
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type MenuItem}" BasedOn="{StaticResource menuItemStyle}">
<Setter Property="ItemContainerStyle" Value="{StaticResource menuItemStyle}" />
</Style>
</Setter.Value>
</Setter>
</Style>