in ng-repeat directive creates child scope for each and every iteration
check the documentation
Each template instance gets its own scope
so when repeating there is a scope variable called selectedLicense in each and every child scope. so your $scope.selectedLicense not bind to the radio buttons as expected.
here you can use prototypical inheritance, here is the great answer for what is JavaScript Prototypal Inheritance
$scope.x = {};
$scope.x.selectedLicense = $scope.licenses[0].nrOfLicenses;
<input type="radio" ng-model="x.selectedLicense" ng-value="lic.nrOfLicenses"></input>
// here angular search the `selectedLicense` in the child scope and then it will search the x object in parent scope after it detect there is no `selectedLicense` in the child scope.
here is the demo Fiddle
in the above example radio buttons are bind to the nrOfLicenses property in the object.
if you want to bind the radio to the whole object, then follow this
$scope.x = {};
$scope.x.selectedLicense = $scope.licenses[0];
<input type="radio" ng-model="x.selectedLicense" ng-value="lic"></input>
here is the demo Fiddle