Hi Jon,
The ThemeManager (and thus theme switching) works by merging the appropriate theme files into the appropriate Resources collection. When using ThemeManager.CurrentTheme, the theme files are merged into the App.Resources. When using ThemeManager.SetTheme(DependencyObject,string), the theme files are merged into the Resources of the specified object.
So even if you put your implicit Style in the App resources, it will be a lower priority than the theme files merged using SetTheme (since they would be loaded after your implicit Style). You would need to use the CurrentTheme property, or define your implicit Style in the Resources for the object you pass to SetTheme.
Keep in mind that if you are using the attached property ThemeManager.ThemeProperty, then that is the same as calling SetTheme.