I tried this in small sample with scrollViewer and was able to reproduce an issue.
ScrollViewer
might be eating up the MouseDown event which doesn't get pass through to the ListBoxItem.
Like I said above here are the snapshots for raised events taken using Snoop.
If you click on first ContentControl, it respond perfectly because MouseDown events make its way to ListBoxItem perfectly hence selecting ListBoxItem. Events flow is summarised below:
But in second case when you click on ContentControl which is inside of ScrollViewer, ScrollViwer eats up the MouseDown event by handling it. Here is the flow for second case: