Nie wiem czy znacząco Ci pomoże, ale możesz podać "kulturę" która ma być użyta podczas konwersji:
Convert.ToDateTime Method (String, IFormatProvider)
https://msdn.microsoft.com/en-us/library/9xk1h71t%28v=vs.110%29.aspx
np:
dt = Convert.ToDateTime(currentArticles[iterator].PublicationDate, CultureInfo.GetCultureInfo("EN-GB") );
lub
dt = Convert.ToDateTime(currentArticles[iterator].PublicationDate, CultureInfo.GetCultureInfo("EN") );
w zależności od tego jakiej "kultury" chcesz użyć. Tutaj masz listę wspieranych "kultur":
https://msdn.microsoft.com/en-us/goglobal/bb896001.aspx
Domyślnie na każdym systemie jest używana inna "kultura". Możesz sprawdzić jaka jest "kultura" na danym systemie przez:
CultureInfo.CurrentCulture
Tak z innej beczki. Generalnie użyty przez Ciebie format nieco mnie razi ponieważ dla mnie jest nieczytelny (to jest oczywiscie subiektywne odczucie, bo np dla Ciebie może być doskonale czytelny). Jeśli strefa czasowa nie jest dla Ciebie chiper istotna to ja bym np w ten sposób konwertował Datetime na string:
var dtString = string.Format("{0:yyyy-MM-dd HH:mm:ss.fffffff}", DateTime.Now)
Natomiast do konwersji ze stringu do Datetime bym użył następującej funkcji
var parsedDt = DateTime.ParseExact (dtStr, @"yyyy-MM-dd HH\:mm\:ss\.fffffff", CultureInfo.InvariantCulture);
Reasumując ja bym podszedł do tego w ten sposób. Poniżej zmienna "eq" powinna na każdym systemie zwrócić "true"
var dt = DateTime.Now;
var dtStr = string.Format ("{0:yyyy-MM-dd HH:mm:ss.fffffff}", dt);
var parsedDt = DateTime.ParseExact (dtStr, @"yyyy-MM-dd HH\:mm\:ss\.fffffff", CultureInfo.InvariantCulture);
var eq = dt == parsedDt;
Oczywiście moje podejście zawiera tę wadę, że zaniedbuję tutaj strefę czasową, ale w dużej części przypadków nie jest ona istotna.