If someone read this and has a similar issue, I added the selected options to be rendered in the template:
if form.is_valid():
…
if form.cleaned_data[‘sub_code’]:
form.fields[‘sub_code’].initial = [form.cleaned_data[‘sub_code’]]
return …
Thanks again to Tim and Ken for their time, much appreciated