You would also need to pass the Schedule line number to tell the order which schedule line to update. Otherwise, I believe it would add a new schedule line, which would result to addition to the quantity.
You are also missing the Line Item number fro the Schedule line in the Change table (X structure).
schedule_lines-itm_number = lv_vgpos.
schedule_lines-sched_line = lv_schedule_line.
schedule_lines-req_qty = i_act_weight.
APPEND schedule_lines.
schedule_linesx-updateflag = 'U'.
schedule_linesx-itm_number = lv_vgpos.
schedule_linesx-sched_line = lv_schedule_line.
schedule_linesx-req_qty = 'X'.
APPEND schedule_linesx.
Thanks,
Naimesh Patel