Problema com transferencia de objeto serializado

Boa tarde pessoal, estou com um problema mas não sei nem pelo que procurar. já fiz esse programa 2x sem re-utilizar nada e mesmo assim cai no mesmo erro, pode ser que alguem já tenha passado por isso e saiba como resolve-lo.

Seguinte, tenho um programa servidor, programa cliente e um pacote de objetos que estão na lib de ambos. O servidor armazena uma lista de vôs e seus passageiros, alem de possuir um serversocket que fica escutando conexões. O Cliente tem um socket que envia objetos e o servidor responde.

Quando eu mando um objeto “InfoVoo” ele me retorna a lista de vôos e a quantidade de passageiros corretamente, após isso eu mando exibir a lista de passageiros, que vem corretamente tambem. porem quando eu cadastro um novo passageiro e mando re-exibir a lista não aparece o passageiro novo, só a lista antiga. Fiz o teste de dar um system.out na lista na hora que sai do servidor e na hora que recebe no cliente, no servidor diz que saiu a lista certinha com o passageiro novo, porem na do cliente diz que recebeu a lista antiga, sem o novo cliente. É como se o cliente recebesse a lista antiga e não a nova que o servidor enviou mesmo eu não tendo absolutamente nada estatico.

Estou usando ObjectStreams e todos os objetos são serializados.

Servidor:

private Object processa(Object objeto) {
        parent.escreveLog("Processo." + nome + "." + objeto.getClass().getCanonicalName());
        
        if (objeto instanceof InfoVoo) {
            return parent.banco.getInfoVoos();

        } else if (objeto instanceof ObVoo) {
            ObVoo voo = (ObVoo) objeto;

            if (voo.getId() != -1) {
                voo = parent.banco.getVoo(voo.getId());
                Vector<ObPassageiro> passageiros = voo.getPassageiros();
                for (int cont = 0; cont < passageiros.size(); cont++) {
                    System.out.println(passageiros.get(cont).toString()); //Aqui mostra a lista certinha com o novo passageiro
                }

                return voo;
            } else {
                return new InfoRetorno(InfoRetorno.ERRO, "Não é permitido cadastrar vôos");
            }
        } else if (objeto instanceof CadPassageiro) {
            CadPassageiro passageiro = (CadPassageiro) objeto;
            int id = ObPassageiro.getNovoID();
            parent.banco.getVoo(passageiro.getIdVoo()).addPassageiro(new ObPassageiro(id, passageiro.getNome()));
            if (parent.banco.getVoo(passageiro.getIdVoo()).getPassageiro(id) != null) {
                return new InfoRetorno(InfoRetorno.SUCESSO, "Passageiro cadastrado com sucesso!");

            } else {
                return new InfoRetorno(InfoRetorno.ERRO, "Não foi possivel cadastrar o passageiro!");
            }
        }

        return new InfoRetorno(InfoRetorno.ERRO, "Objeto desconhecido!");
    }

Cliente:

private void acaoAtualizarVoos() {
        try {
            ((ComboInfoVooModel) jComboBox1.getModel()).removeAllElements();
            ((ListPassageirosModel) jList1.getModel()).removeAllElements();

            escreveLog("Atualizando lista de vôos...");

            oos.writeObject(new InfoVoo());
            InfoVoo[] infos = (InfoVoo[]) ois.readObject();

            if (infos.length > 0) {
                for (int cont = 0; cont < infos.length; cont++) {
                    ((ComboInfoVooModel) jComboBox1.getModel()).addElement(infos[cont]);
                }
            } else {
                escreveLog("Nenhum vôo cadastrado!");
            }
            escreveLog("Lista de vôos atualizada!");

        } catch (Exception e) {
            e.printStackTrace();
            escreveLog("Erro ao atualizar vôos");
        }
    }

    private void acaoListaPassageiros() {
        try {
            ((ListPassageirosModel) jList1.getModel()).removeAllElements();

            InfoVoo info = ((ComboInfoVooModel) jComboBox1.getModel()).getInfoVoo(jComboBox1.getSelectedIndex());
            if (info != null) {
                oos.writeObject(new ObVoo(info.getId()));
                ObVoo voo = (ObVoo) ois.readObject();

                Vector<ObPassageiro> passageiros = voo.getPassageiros();
                for (int cont = 0; cont < passageiros.size(); cont++) {
                    System.out.println(passageiros.get(cont).toString()); //Aqui ele mostra a lista antiga
                    ((ListPassageirosModel) jList1.getModel()).addElement(passageiros.get(cont));
                }
                escreveLog("Passageiros listados!");

            } else {
                escreveLog("Vôo não reconhecido!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            escreveLog("Erro ao listar passageiros");
        }
    }

    private void acaoCadastrarPassageiro() {
        try {
            InfoVoo info = ((ComboInfoVooModel) jComboBox1.getModel()).getInfoVoo(jComboBox1.getSelectedIndex());
            if (info != null) {
                String nome = jTextField2.getText().trim();
                if (nome.length() > 0) {
                    CadPassageiro cad = new CadPassageiro(info.getId(), nome);
                    oos.writeObject(cad);
                    InfoRetorno retorno = (InfoRetorno) ois.readObject();

                    if (retorno.getCodRetorno() == InfoRetorno.SUCESSO) {
                        jTextField2.setText("");
                        acaoListaPassageiros();
                    }

                    escreveLog(retorno.getMensagem());

                } else {
                    escreveLog("Nenhum nome para o passageiro!");
                }
            } else {
                escreveLog("Vôo não reconhecido!");
            }

        } catch (Exception e) {
            e.printStackTrace();
            escreveLog("Erro ao cadastrar passageiro");
        }
    }

Objetos:

public class ObVoo implements Serializable{

    private static int ID = 0;

    public static int getNovoID() {
        return ID++;
    }
    
    public static final int TIPO_707 = 707;
    public static final int TIPO_727 = 727;
    public static final int TIPO_737 = 737;
    private int id;
    private int tipoAviao;
    private float precoPassagem;
    private int capacidade;
    private VectorSerial passageiros;

public class ObPassageiro implements Serializable{
    
    private Integer id;
    private String nome;

Já agradeço qualquer ajuda.