It happens because you have used lv_group_set_default(), so all list elements and message box buttons are added to the group. When the message box is deleted the previous item in the group is focused, which is the last list item.
To solve it you can do 3 things:
Do not use lv_group_set_default is groups are not needed
Apply lv_obj_clear_flag(list_item, LV_OBJ_FLAG_SCROLL_ON_FOCUS); on each list_item
Manually focus a list item when the message box closes using lv_group_focus_obj(list_item). You can save the last focused object before opening the message box, and focusing it again when the message box is closed.