How this exactly is working.. I don't know. But you need to know there are, with date functions, two functions available.
The function with the '#' interprets the field first while the other can transform the field. This is often not a problem, but when you don't define the field with '#' you have the possibility that Qlik isn't interpreting it right.
So, try to use Timestamp#() first and around this function, place the Timestamp.