Since .NET FrameWork 1.1, the System.Data NameSpace provides a DataSet.Copy method which will create: "A new DataSet with the same structure (table schemas, relations, and constraints) and data as this DataSet."
Just do it:
DataSet copyDataSet = OriginalDataSet.Copy();