I found a way around this - I had a window of downtime where nothing was happening on any of the servers.
First I setup the new server as a publisher setting the old server as the distributor. I then ran the following statement on the publication database and at each of the subscriber databases:
UPDATE sysmergearticles SET preserve_rowguidcol = 1
This means that when you drop replication the rowguid column that's added when replication is setup remains on the table. I then scripted all the publications by right clicking on the publication and selecting "Generate Scripts". Bear in mind that the passwords for the snapshot agent, agent process account and subscriber connection are not scripted and will need to be added in manually. Also if for any reason you've created your own job schedule removing the default one by editing the SQL Server Agent schedule directly it will not script correctly.
Once scripted I modified each of the sp_addmergesubscription steps so that @sync_type = N'None'. This tells the publication that the subscriber already has the snapshot and there's no need to sync. I also replaced any reference to the old publisher name with the new one.
I then dropped the subscriptions at each of the subscribers using the following:
EXEC sp_dropmergesubscription @publication = N'Publication Name', @subscriber = N'Subscriber Server Name', @subscriber_db = N'Subscriber Database'
I then deleted the publications from the current publisher. The database was then backup up and copied to the new server and restored. I then ran the scripted publications on the new server then went through each publication and ran a synchronisation. I managed to do this in a 8 hour window with 5 publications referencing 66 articles to 50 subscribers. Better than the 3 day job night shift job I was planning on....