It's not two players with the same SteamID.
Any time someone joins the server, someone's permissions are changed, or a user is added/removed from a group, the users.txt file is read from and/or written to.
If any of those things happen at the same time on two servers, you're going to have issues. Unless the file handling in Garry's Mod has a way to check if anything else is accessing the file (no idea how that would work, not sure if it's possible) then you'll have problems.
I may be wrong, but I'm pretty sure writing to a file involves reading it first. If two servers both want to write to users.txt, then they both have to read it. They'll be reading the same file, so all is good. But then they have to write it. One server is bound to write to the file a millisecond before the other. Which ever one writes first, will have its changes overwritten by the second server.
As to why ulx adduserid works, but ulx adduser doesn't... I'm not sure. The only thing I can think of (a stupid question, I know) is if you're trying to add an offline user with ulx adduser. I'm pretty sure ulx adduser will throw an error if you try that.
Again, I could be completely wrong about how GMod/ULib handles I/O. But really, running four servers with one users.txt is a bad idea. One alternative to using a ULX MySQL addon would be to set up a webpage from which you could run commands on all four servers. That way you could modify the users.txt simultaneously for all four servers. A bit more of a hassle, but I still think it's better than your current solution.