Durante la stessa esecuzione, per lo stesso oggetto l'hashcode non cambia.
Rieseguendolo, potrà cambiare dal precedente, ma durante la stessa esecuzione rimarrà lo stesso.
Quindi, funziona correttamente.
Riguarda il fatto che ti stampa 2 valori differenti, è perché succede qualcosa nel passaggio dati, nella serializzazione, da qualche parte in mezzo.
prova a passarti un byte[] di 10 caratteri, settato da te, e vedi se arriva allo stesso modo dopo averlo serializzato e passato su bundle.