If you change the choices in the "Period" column it will not affect the current choice selected in previous list items unless the list items are edited. If you change the choices and then edit an older item, the selection is removed if it's no longer an available choice, again, that's only if the item is edited. However, if you modify the choices using JSLink you will run into the same issue if the old items are edited. If the old items will never be edited, you can safely change the choice options without worrying about losing the old values in older items.
If the old items may be edited, you could consider renaming your old choice column and creating a new choice column with new values, then making the old column read only so it cannot be changed even if old items are edited. Once read-only the values will not change, even if the choices in the columns have changed.
Here's a way to make a column read-only with JSLink.
(function () {
// Create object we want to change it's output render
var readonlyFiledContext = {};
readonlyFiledContext.Templates = {};
readonlyFiledContext.Templates.Fields = {
// Apply the new rendering for Period field on Edit forms
"Period": {
"EditForm": readonlyFieldTemplate
},
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(readonlyFiledContext);
})();
// This function provides the rendering logic
function readonlyFieldTemplate(ctx) {
//Reuse ready sharepoint javascript libraries
switch (ctx.CurrentFieldSchema.FieldType) {
case "Choice":
return SPField_FormDisplay_Default(ctx);
}
}
Be sure to place the JSLink on the edit form. Keep in mind that if you change the column name, you must use the original column name in the function. You could change the column name to "Period (Historical)" but you still have to use "Period" in the function. Then create a new column "Period" with new values.
Reference: https://code.msdn.microsoft.com/office/Sample-8-List-add-and-edit-d228b751