My website and form are in different domains, and my source is always shown as direct.
When website and form are in different domains, the form will not inherit the website's parameters
automatically
.
The UTM params should be appended to the form URL by adding the UTM tracking code to the footer of the website. UTM parameters will then be captured in Google Analytics.
However, UTM configuration amidst a Google Tag Manager setting could result in duplication of sessions and different source/mediums in some instances.