I see no reason why what you describe should happen from running this script, provided that you are on a layout based on Clients when you perform this script. Each user has their own found sets that are independent from one another so what one user does should not affect another when it comes to what records make up the found set, sort order and current record on their screen.
But if this script is being run from a layout that is not based on Clients, there could be issues with the layout and current record that are causing the results that you are getting. It's possible that the wrong value is then being put into the variable.
As I was about to post this, I just thought of another reason this may be happening. Go to a layout based on Clients where you have access to the clients_kp_clients_id field. Enter find mode. Put a lone ! in this field and perform the find. You should not find any records. If you do, you have a serious problem where you have client records with ID's that are not unique. One way that this could happen is if the id field is an auto-entered serial number and you imported client data from another table or file without also updating the "next serial value" setting on this field to be larger than the largest imported value.
I just performed the ! test as you suggested and didn't find any records.
I had also run through this script with the debugger and on the times that I tried it, it was using the correct id in the $CLIENT variable, and it was starting out from a layout based on the clients table.
Not sure what else it could be.