Just changed to using the search function and then doing a search within that and it takes less than a second - yay! :-)
on SearchForDuplicates(currentTrackToCheck, iTunesLibrary)
tell application "iTunes"
set duplicateSongs to {}
set preSearch to search iTunesLibrary for (name of currentTrackToCheck as text) only songs
repeat with aTrack in preSearch
tell aTrack
if (name is equal to (name of currentTrackToCheck as text) and ¬
database ID is not equal to (database ID of currentTrackToCheck as integer) and ¬
time is equal to (time of currentTrackToCheck as text)) then
set end of duplicateSongs to aTrack
end if
end tell
end repeat
return duplicateSongs
end tell
end SearchForDuplicates