Secondo me la strada da intraprendere è quella dei Triggers.
Io per fare una cosa più o meno simile al tuo caso mi sono creato uno stile applicato a tutti i pulsanti, in questo stile, nella sezione ControlTemplate, ho aggiunto i triggers relativi al comportamento/aspetto da assumere durante, ad esempio, il mouseover o pressed o IsEnabled a false.
Fai una ricerca relativamente all'uso degli stili e dei Triggers.
Un esempio semplice, non relativo al tuo caso ma come base di partenza, è il seguente dove il testo del pulsante diventa rosso, bold e con font 20 quando il mouse è sopra di lui:
<Button VerticalAlignment="Top" Content="Button" Margin="191,59.96,272,0" Height="50">
<Button.Resources>
<Style x:Name="ButtonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontSize" Value="20"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Resources>
</Button>
Considera che i risultati migliori li ottieni creando un tuo stile da applicare a tutti i controlli e non direttamente cambiando lo stile di un singolo controllo, come fatto nell'esempio.
Ciao.
P.S. Per quanto riguarda la possibilità di cambiare una proprietà di BevelBitmapEffect non ho mai provato ma penso che il procedimento sia lo stesso, prova a dare un nome all'effetto e poi a cambiare una sua proprietà usando il Setter con TargetName:
<Setter TargetName="NomeDell'Effetto" Property="Nome Proprietà da cambiare" Value="valore" />
(Spero di non aver sbagliato qualche cosa

)
Ri-Ciao.