Over the course of the last couple of hours I have been tracking down a fairly specific bug with that occurs because another application has the clipboard open. Essentially
Another workaround would be to use Clipboard.SetDataObject instead of Clipboard.SetText.
According to this MSDN article this method has two parameters - retryTimes and retryDelay - that you can use like this:
System.Windows.Forms.Clipboard.SetDataObject(
"some text", // Text to store in clipboard
false, // Do not keep after our application exits
5, // Retry 5 times
200); // 200 ms delay between retries