I can't solve your entire problem, but I can give you several hints:
First, it makes no sense to use TwoWay binding for the
Command
property.
Second, try using TwoWay binding for the IsChecked property of the child checkbox:
IsChecked"{Binding ElementName=SelectAllCheckBox, Path=IsChecked, Mode=TwoWay}"
Third, read a book or an article about the basics of WPF commands and bindings...