Hmm, hittade lösningen själv.
Som jag misstänkte håller både ObjectOutputStream och ObjectInputStream reda på vilka objekt som redan skickats/tagits emot, så de ger bara referensen till det objektet i såna fall.
För att gå runt detta problem måste någon av dem nollställas innan man kan skicka över samma objekt igen. Like this:
final OutputStream out = sock.getOutputStream();
final ObjectOutputStream oout = new ObjectOutputStream(out);
Room room = new Room("hej");
oout.writeObject(room);
oout.flush();
room.setName("hejdå");
//För att skicka det uppdaterade rummet måste oout nollställas
oout.reset();
oout.writeObject(room);
oout.flush();
Så man nollställer alltså med oout.reset() innan man ska skicka objektet på nytt.