Creo que tu problema es el siguiente:
Las carteras del cliente bitcoin-qt generan 100 direcciones al crearse. Tú sólo ves 5 en el cliente, y cada vez que pides una nueva dirección para recibir btc no la estas creando realmente, si no cogiendo una dirección de esas 100 ya creadas.
Por ejemplo tenemos wallet A con sus 100 direcciones, y le haces una copia, wallet B. Ahora empiezas a usar walletA, y cada vez que miras walletB el saldo será el mismo, pero en el momento que uses la dirección 100 de walletA y bitcoinqt cree una nueva (por ejemplo para el cambio, como en tu caso) la wallet B no la tendrá en su lista de direcciones, y por lo tanto no verás el saldo de esa dirección concreta.
Soluciónes:
Primero no uses el wallet.dat en plan un día aquí otro allí. Es mejor tener dos carteras distintas. Al wallet.dat le haces una copia regularmente sólo como respaldo. Siempre puedes usar otro cliente si necesitas tener carteras "read only".
Segundo, para recuperar "la normalidad" podrías exportar todas las direcciones de tus dos carteras e "integrarlas" en una nueva. Lo mejor para esto es transferir todos los saldos a nuevas direcciones, lo que le llaman swipe (barrido) en el Armory. Por supuesto también podrías localizar la dirección en concreto que no tienen las dos carteras y reimportar esa.
Lo que buscas son los comando "dumprivkey" para ver las direcciones privadas de cada cartera, e "importprivkey" para importar las que te falten.
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_listSaludos