Was able to get this fixed eventually. Pretty easy now that I think about, but took me 3 days to realize it. Instead of trying to listen for events on ng-repeat, catch the event that is causing the data to be modified. For me, it was jquery UI sortable (angular directive.) In the controller add $scope.$broadcast('unbind-ckeditor')
before the change, and then $scope.$broadcast('rebind-ckeditor')
after it. In your angularjs directive for ckeditor, call scope.$on('unbind-ckeditor', function() {instance.destroy /* instance is your ckeditor instance*/});
and then reload it in the rebind. Hope this helps someone.
Edit:
Make sure the $on('unbind-ckeditor'...
is only added to the scope once, or multiple sorts will throw exceptions.