It should always be safe to delete files in the Temp directory. Looks like you've found the culprit, but it seems a little strange - and it would be nice to know what caused it.
Do you have a current backup of your data - just in case? If you're nervous one possibility would be to rename the file - say to tmp9991.tmp.old - just to make sure that nothing breaks, and then delete it when you are sure it's OK to do so.
Although that doesn't quite account for all the missing space the rest is probably hidden and system files that Explorer wouldn't have been counting.