It’s hard to notice (I had to look twice), but the problem is the spaces between the patterns in the :autocmd definition:
The syntax is
:au[tocmd] [group] {event} {pat} [nested] {cmd}
:help {pat} shows that there must not be whitespace between individual patterns.
Example
:au BufNewFile,BufRead *.py, *.php, *.rb, *.html, *.js, *.ts, *.md echomsg 'test'
:au BufRead *.py
--- Auto-Commands ---
filetypedetect BufRead
*.py setf python
BufRead
*.py *.php, *.rb, *.html, *.js, *.ts, *.md echomsg 'test'
As you can see, Vim only recognizes the first pattern, and takes all following as (Ex) commands!
The :* command executes the contents of a register (probably rubbish), and that causes the E20 error you’ve seen (probably because there’s the ' character in the register).
Fix
Drop the whitespace. As I’ve already commented, you can also skip repeating the :set commands for each option.
:au BufNewFile,BufRead *.py,*.php,*.rb,*.html,*.js,*.ts,*.md ...