From the examples that you posted, I could only test the last one and the problem is with your precision which comes short. Changing it to 11 makes it work. Be aware that float is an approximate data type and will return unexpected data.
SELECT CAST('735509.00053' AS DECIMAL(11,5))
- CAST('735509.00047' AS DECIMAL(11,5)),
convert(FLOAT,CAST('735509.00053' AS DECIMAL(11,5)))
- convert(FLOAT,CAST('735509.00047' AS DECIMAL(11,5)))