fscanf si aspetta un input formattato, per quello si incasina.
Avresti dovuto scrivere:
codice:
for(j = 0; j < BUF_SIZE; j++)
fprintf(fp, "%hd\n", BUFFER[j]);
per leggere correttamente con la fscanf.

L'accoppiata fwrite - fread (come indicato sopra) risolve il problema.