hclubmk, в описании нет ни слова про то, как создается серверный объект. Подозреваю, что просто объявлен в обоих клиентах как new, или там же через new создается. И в этом случае Хакер прав - у клиентов разные объекты. Однако он не прав насчет противоестественности вопроса.
Слышал про GetObject? Так вот он-то тебе и нужен. Не важно, какой из клиентов запускается первым, любой должен сначала выполнить GetObject и тем самым попытаться получить "тот же" объект. Если сервер не запущен, GetObject завершится ошибкой и вот тут-то вступает в действие new. Однако, чтобы GetObject заработал с твоим сервером, ты должен познакомиться с доселе неизвестной тебе сущностью:
Running Object Table. Описано пугающе сложно, но читать статью полностью не обязательно, достаточно лишь получить представление, с чем это едят. Реализация занимает несколько строк и находится
здесь, например.
Процедура AddToROT должна (если у сервера нет графического интерфейса и он не запускается сам по себе как эксель, например) запускаться в Class_Initialize, а RemoveFromROT в Terminate. Class_Initialize должен выполняться единожды, если это происходит несколько раз, значит где-то косяк. Все переменные, где хранятся данные потребные клиентам, должны быть перенесены в класс. Не то чтобы это что-то сильно изменило в твоем случае, но это концептуально правильный подход и нужно себя к этому приучать.
Лучший способ понять что-то самому — объяснить это другому.