Я использовал Snoop, чтобы посмотреть, что происходит. Кажется, что другой DataGridColumnHeader всегда создается позади того, который вы можете изменить, и на него не влияют изменения стилей. Когда вы устанавливаете прозрачный фон, на самом деле он применяется правильно, так что вы видите этот призрачный заголовок позади (который имеет обычный серый фон).
Если вы примените цветной фон и поиграете с Opacity, вы увидите, как смешиваются два цвета. Я не знаю, можно ли это решить.