As long as you are using a Timer, you must keep a reference to it. As with any managed object, a Timer is subject to garbage collection when there are no references to it. The fact that a Timer is still active does not prevent it from being collected.
return XDocument.Load(XmlStream);
Timer t1 = new Timer(Test, Links[0], 0, 3000);
Timer t2 = new Timer(Test, Links[1], 0, 3000);