Template Binding with Attached Properties
I think TemplateBinding is evaluated at compile time so you can't dynamically set a TemplateBinding in your Setter, try using Binding instead (see below).
<Setter TargetName="border" Property="BorderBrush"
Value="{Binding Path=(local:ThemeProperties.ButtonBorderColour),
RelativeSource={RelativeSource TemplatedParent}}"/>
Hope this helps.