Добрый день...
Событие "AT END OF... ENDAT." заполняет звёздочками поля, которые не учитываются при проверке критерия (т.е. те, которые правее charg). Если они вам нужны, то просто копируйте их во временную структуру.
SORT lt_mchbh BY matnr werks lgort charg lfgja lfmon.
LOOP AT lt_mchbh INTO ls_mchbh.
MOVE-CORRESPONDING ls_mchbh TO tmp_mchbh.
AT END OF charg.
MOVE-CORRESPONDING tmp_mchbh TO ls_mchbh_final.
APPEND ls_mchbh_final TO lt_mchbh_final.
CLEAR ls_mchbh_final.
ENDAT.
ENDLOOP.