rsyslog- what's the difference between $ModLoad and module(load)?

On the whole, rsyslog does a good job allowing legacy options from 20 years ago to co-exist with all the enormous changes made since.

Note that a $ModLoad line can have many other lines providing options for that module. For example, the $SystemLogSocketName option you found corresponds to the imuxsock module() option SysSock.Name=.

You should look at all the other non-commented-out lines beginning $ and convert them to appropriate module parameters.