Merge replication gone wrong, and snapshot is timing out
Timing out is probably due to performance.
Reduce the retention period gradually and reinitialize all the subscribers. I've copied and pasted the steps to do this from Claudia Silva's technet blog below:

Evaluate the number of rows that will be deleted:


Use coldate from Msmerge_genshistory to get the list of generations that will be removed 
With that list (generation) get the number of rows that will be deleted in other system tables 


Example: 
Select generation from dbo.MSMerge_genhistory where coldata &lt; ‘[current data – retention period you desire]’ 

Example:
So, from today, the 5th of April 2016, I would like a retention of 7 days: &lt; 29th of March 2016 

With the list of generations generated, we can see how many rows of data will need to be deleted from the other system tables (MSmerge_contents / MSmerge_tombstone) as well. If the number is quite high, then we increase the datetime: (example) &lt; 24th of March 2016 

Depending on the amount of data needed to be deleted, one may need “one to many” intermediate steps before reaching the target retention desired. 

The key to this being a success is estimating the effect of the deletes that needs to be executed (by default batch of 5000 rows). 

http://blogs.technet.com/b/claudia_silva/archive/2009/06/22/replication-infinite-retention-period-causing-performance-issues.aspx 
and
http://msdn.microsoft.com/en-us/library/ms178557.aspx