Set Background
to Transparent
on outer most border of ControlTemplate.
<Border BorderBrush="Gray" Background="Transparent"
BorderThickness="2" CornerRadius="10">
By default it's {x:Null}
which is not responsive to mouse events.
You will see that item gets selected only in case you click over image or any control present in template but when you click on empty area within border, selectionChange event doesn't fire since it is unresponsive to mouse events (specifically MouseClick in your case). Setting background to Transparent will make it responsive to all mouse events.
Refer to this for more details - {x:Null} Vs. Transparent.