One way would be to use sheet change event code to ensure cells with data are locked but only if they are within your desired range, and then protect the sheet. The difficulty there (as I see it) is you could not have cells outside of that range set to be locked - and that is the default for all cells. Also, anyone who knows how to get into the code could discover the protection password if you use one, and you'd need to unprotect the sheet if you want to edit a cell in the range that already has content.
Another would be to set 21 variables to the contents of your 21 cell range upon workbook opening. Using the same event as suggested, check if the altered cell value in that range matches the corresponding variable and the variable already has a value. If they are not the same, over-write the entered value with the saved value and raise a message saying existing values in the range cannot be changed. Of course, you may want to provide a means for an admin to be able to alter existing values.
Wait and see if you get a better answer because I'm not really an Excel guru, but I try to help where possible.