ContentTemplate сообщает WPF, как отображать содержимое в пределах Кнопка - хром кнопки (такой как граница и фон) сохраняется, а шаблонное содержимое отображается внутри и поверх этого хрома. *
Вы хотите заменить весь внешний вид кнопки, границы и всего, вместо того, чтобы просто настроить способ отображения ее содержимого. Для этого вам нужно использовать свойство Template. Значением Button.Template является ControlTemplate, а не DataTemplate. Внутри этого ControlTemplate вы можете использовать ContentPresenter для отображения содержимого с шаблонами данных.
В вашем случае, так как ваш DataTemplate выполняет всю работу, вы можете использовать в качестве шаблона необработанный ContentPresenter:
<Button.Template>
<ControlTemplate TargetType="Button">
<ContentPresenter />
</ControlTemplate>
</Button.Template>
Однако, если все ваши кнопки используют один и тот же фон, вы можете переместить это в ControlTemplate:
<Button.Template>
<ControlTemplate TargetType="Button">
<Border BorderBrush="Blue" ...>
<ContentPresenter />
</Border>
</ControlTemplate>
</Button.Template>
Затем вы можете удалить Границу из шаблона данных. Это действительно имеет значение только в том случае, если вы планируете повторно использовать один и тот же Button.Template с другими шаблонами контента и хотите, чтобы внешний вид Button соответствовал различным типам контента.