Straight to your questions.
1. It is necessary to specify which field of the model is its id since the dataSource tracks its state by the id (whether it is modified, selected when persist selection is enabled, etc...). Since the dataSource supports only a single field identifiers it is possible within the schema.parse handler to add a field to the model which is a combination of FeeTypeID and AccountNumber.
response = response.map(
x.Id = x.FeeTypeID + x.AccountNumber;
Then specify the new field as an id of the model.
2. The sync method
of the dataSource updates all untracked changes. When the Id of the model is not specified the dataSource cannot track the items and therefore treats all of them as newly inserted items. That is why all the rows are sent when the update button is pressed.