Я так понимаю, вы имеете дело с набором UITouch. Это не будет работать, поскольку UITouch не реализует NSCoding (я думаю).
Вам потребуется извлечь необходимую информацию из каждого UITouch, а затем поместить ее в нечто, соответствующее NSCoding.
NSSet * someSet = ...;
NSData * serializedSet = [NSKeyedArchiver archivedDataWithRootObject:someSet];
Затем отправьте эти данные с помощью игрового комплекта.
Другое устройство, когда оно получает данные, преобразует их обратно в набор.
NSData * receivedData = ....;
NSSet * set = [NSKeyedUnarchiver unarchiveObjectWithData:receivedData];
Тогда вы бы вызвали любой метод, который вам нужен для обработки набора с самим собой. Поскольку вы, вероятно, меняете здесь некоторые компоненты пользовательского интерфейса, обязательно вызовите селектор для запуска в главном потоке.
Кроме того, этот тип вещей будет работать только в том случае, если события касания, с которыми вы имеете дело, не имеют состояния, то есть не имеет значения, где было касание раньше. В противном случае это может вызвать некоторые проблемы. Может быть, лучше извлечь идею о том, что изменилось после сенсорных событий, а затем отправить это на другое устройство и обновить только другое устройство с дельтами того, как изменился UIImage (другими словами, какой тип обработки имеет произошло с изображением на другом устройстве).