My assumption is that you have customization that is making this change. When I run into problems like this I first search my entire lisp collection for the suspect code "set$". I use Textpad as my editor and it will search folders recursively showing list of files with matches. Another option is a program like Search Everything, https://www.voidtools.com/, which can index every file on multiple drives, and can search for content in the files, though slowly. (I use Search Everything every day as a quick launcher.)
A work around would be to put code into the first loaded customization that saves SET to a temporary global variable, and resets it at the last loaded. I can't remember what gets loaded first, but for the last I would use s::startup.
: (setq t1 SET)
#<<FUNCTION> #x2 @fffdc4e66>
: !t1
#<<FUNCTION> #x2 @fffdc4e66>
: (setq SET "don't do this")
"don't do this"
: (SET 'a "b")
; ----- Error around expression -----
(SET 'A "b")
; error : no function definition <SET> ; expected FUNCTION at [eval]
: (setq SET t1)
#<<FUNCTION> #x2 @fffdc4e66>
: (SET 'a "b")
"b"
: !a
"b"