Updating geo coordinates
For what it's worth I think you've over complicated this. It seems to me that you care if you succeed or not and then want to pass as much information on to someone who can figure out what went wrong. The only 2 lines that are in the try block are parsing to doubles so just catch Exception and beef up the information included.

public void UpdateJobGeoCoordinates(Job job)
{
    var address = _kernel.GetKernel();

    var gpsCoordinate = _locator.GetGpsCoordinates(address);

    try
    {
        job.Lat = Double.Parse(gpsCoordinate.Item1, CultureInfo.InvariantCulture);
        job.Lng = Double.Parse(gpsCoordinate.Item2, CultureInfo.InvariantCulture);
    }
    catch (Exception ex)
    {
        ResetCoordinates(job);
        Logger.Warn("Geo location issue for Job [{0}] , Exception details: {1}", job.ERPServiceOrderId, ex);
    }
}


Note that Exception.ToString() is so much more useful than just the message. 

You'll get the type of the exception, the message and the stack trace.