When you talk of an issue with some server, I will say that when it comes up replication will assume automatically from where it left off.
Lets say that the publisher server is down, so it means no new data changes are going to occur and the distributor will have no work to do until it comes up and subscriber's data will be the same when the publisher had gone down. So just focus on getting the publisher up and replication will catch up on its own.
If distributor server is down then the publisher will keep a track of all 'to-be-replicated' commands in its log file and when distributor comes up, log reader agent will scan all the logs and send the information to the distributor and then only changes to subscriber will start. so again, just focus on getting the distributor server up.
If subscriber goes down, you will have all changes kept in distributor , waiting to be propagated. so again, focus on getting subscriber up,.
For higher network latencies, try using different agent profile for log reader and distributor agent with more time-out values, small commits etc.