I don't think they removed the slots, I think they just do not allow unused slots to be shown in the game window. (and some slots they don't use anymore)
I think the pets are not getting properly set as stabled when they go to the internal map and therefore are being deleted after a certain amount of time.
It is possible using the same directory is having issues with UOSteam, I also found if you have more than 1 client installed using UOsteam with any of the Auto detect functions can swap directories for data and cause issues.
Then it does not in the copy I use I tracked when doing extra textures in and coming up with 1 a lot. So I changed it to != to get around it coming up with a 1 and exiting the verify. So if it is supposed to it might not do it at least my copy does not seem to but I have been butchering mine as...
I think there is an issue in that loop that sometimes marks it as over 0.
So I would change :
for (int i = 0; dist < 0 && i < Tiles.Length; ++i)
to:
for (int i = 0; dist != 0 && i < Tiles.Length; ++i)
and see if it changes the results.
This at least works for me when using mining...