Il metamodello del tuo modulo è User , quindi quando provi:
profile = form.save(commit=False)
la variabile profile è un'istanza dell'User class, quindi, dal momento che hai il segnale che crea il UserProfile ad esempio, dovresti usare questo codice:
user = form.save()
profile = user.userprofile
user_group = form.cleaned_data.get('user_type')
profile.user_type = user_group
profile.save()
invece di:
profile = form.save(commit=False)
profile.user = request.user
profile.save()