I was looking into a similar issue and found some info that may help you.
The value entered in the UI, for example `2 days` gets converted to a timestamp in the backend by:
VALUE * 60 * 60 * 24 * 1000
for example 2 days would be: 172800000
the value of the timestamp for the tag is obtained and compared against the system time.
So based on your workaround, I would think either the current time is not coming back in milliseconds OR your SCM is not passing the time of the tag in milliseconds.
I expect that the SCM is not providing the data correct, so that leaves the question of which SCM source are you using?