TimeTicks.Milliseconds is a 64bit long but it behaves like a 32bit integer and will overflow (without an exception). Values that cannot fit into 32bit will have their largest bits removed (so 0x100000001 will become 0x1). (0x100000000 ms ~= 250 days)
TimeTicks.Value is correct for large values.
Example: read the uptime (oid 220.127.116.11.18.104.22.168.0) from 22.214.171.124 (community = public), it should be more than 300 days.