Have a look at the UNK table entry with Notespeek for your field. I suspect that the first time data was stored, the system recognised it as text and thus treats all fields of that name (no matter what the definition is on any form) as text. This is really frustrating to track down as I found out myself a while back.
To resolve, do the following:
1. Create a field on a form and set it as a date. Set the name to be "CompletedDate" or whatever the name of your field is.
2. Create a new replica of the db and then check that replica to see if you have the same issue. If you don't, overwrite the original db with the new replica and you are good to go.
You can also try deleting the FT index and compacting the db after doing step 1 above if you can't replace the replica.