Выдели кому-то роль сервера, пусть он слушает соединения и хранит список уже подключенных клиентов.
По приёму сообщения от подключенного клиента, нужно переслать его всем, кроме отправителя.
Клиенты просто слушают сообщения от сервера и выводят на экран.
Альтернатива - использовать широковещательный UDP, но TCP-сервер надёжнее.
Я бы посоветовал разобраться с asyncio, оно может сильно упростить написание сервера.
Самое сложное будет написать клиента, так как нужно будет подружить asyncio с пользовательским интерфейсом клиента. Даже элементарный input() будет нетривиально использовать.
Так что можно сразу использовать qasync, чтобы подружить pyqt и asyncio.