In order to restore system databases (master and msdb you have to have the database service in single user mode. In order to do this you have to manually start the SQL Server from the command line with the -m and -c switches. This will allow a single user to connect a single process and restore the master and msdb database from backup.
As the distribution database also needs to be restored as a system database I would assume this database needs the same attention. However I’m not positive as I’ve never had to restore a distribution database before.
When restoring your published database be sure to use the KEEP_REPLICATION flag in order to keep the replication settings intact.
The model database does not need to be restored as it is simply an empty database which is used as a template with new databases are created.
It is recommended that you simply create the logins, jobs, etc on the destination database and manually keep them in sync as moving these databases from server to server is not an easy task.