Try replacing the parameter assignment to specify the format:
InsertCMD.Parameters.Add ( "@GDDate", SqlDbType.DateTime ).Value = GDDate.ToString ( "yyyy-MM-dd HH:mm:ss.fff" );
You might also need to change command to specify the input format:
InsertCMD.CommandText = "insert into Test(TestDateTime) values ( CONVERT([datetime], @GDDate, 121) )";
Also, try calling
InsertCMD.Prepare()
after setting the parameter.
[EDIT] Removed delimiters from parameter declaration in command text. [/EDIT]