I have encountered this behaviour that I believe to be a bug, where if a controller name contains an uppercase letter, value change callbacks are never fired.
Everything behaves as expected after converting the controller name to lowercase.
Please see this codepen for a demonstration: if you click the button, the text on the page does not change, however, if you rename the controller from Test to test (there are 4 occurrences in the html and 1 occurrence in the javascript) the text on the page changes after clicking the button. Tested on Firefox and Chrome.