Due dubbi ...
1) nella Serialize, quando scrivi
i<sizeof(aAccelleratorArray);
cosa credi che restituisca la sizeof?
2) nella UnSerialize, hai un puntatore ad un array
LPACCEL aAccelleratorArray;
ma non allochi mai lo spazio per i suoi elementi ... e fra l'altro, dopo aver letto il primo non leggi gli altri ...