В предоставленном вами коде обработчик события PropertyChanged будет подписан.Почему вы думаете, что это не так?
Подобные изменения приведут к корректному обновлению списка:
List<Data<Person>> list = DataContext as List<Data<Person>>;
list[0].MyData = new Person() { Name = "Bob", Age = 12 };
Помните, что ваш класс Data не поддерживает уведомления о свойствах для отдельных свойств, поэтомуСледующие изменения не обновят список.
List<Data<Person>> list = DataContext as List<Data<Person>>;
list[0].MyData.Name = "Bob";
list[0].MyData.Age = 12;