This and many other quirks are fixed by v2.
Integer keys are stored using the native signed integer type. AutoHotkey 32-bit supports integer keys in the range -2147483648 to 2147483647. AutoHotkey supports 64-bit integers, but only AutoHotkey 64-bit supports the full range as keys in an object.
Source: Objects - Definition & Usage | AutoHotkey
"Integer keys" was probably supposed to include numeric strings, as v1 is not designed to
consistently allow for distinction between a numeric string and a pure integer. For instance,
x := "1", y := x + 1 produces an
x which has both a pure integer and a string, and so does
x := 1 or
x := 01 (the latter two producing different strings in v1). This is due to
caching (but I'm just using it as an example; caching isn't the cause of your issue).
I will clarify the documentation for "Keys".
Edit: It's actually implied by the next point:
As a consequence of the point above, the string format of integer values is not retained. For example, x[0x10], x[16] and x[00016] are equivalent. This also applies to numeric strings which don't have a decimal point.