Hi Jonathan,
When playing back the double click action, TestComplete verifies whether the first click has been processed by the application before sending the second click. If it takes long to process the first click for some reason, the second click will be sent later than necessary, and therefore, it will be treated as an individual click event. The slowdown you observe might be caused by a great variety of factors. So, I recommend that you go through the following technical paper - this may help you significantly improve playback performance:
http://www.automatedqa.com/techpapers/testcomplete/test-playback-performance-tips/
Also, here is a script routine which may possibly work around the problem (try using this routine instead of the DblClick method):
[VBScript]
Function DblClick(obj)
Dim X, Y
X = obj.ScreenLeft + obj.Width / 2
Y = obj.ScreenTop + obj.Height / 2
Call Sys.Desktop.MouseDown(VK_LBUTTON, X, Y)
Call Sys.Desktop.MouseUp(VK_LBUTTON, X, Y)
Delay(50)
Call Sys.Desktop.MouseDown(VK_LBUTTON, X, Y)
Call Sys.Desktop.MouseUp(VK_LBUTTON, X, Y)
End Function