From the short dump:
"<GT_ITAB> has line type "v" and the length 24, but the work area has line type "g" and the length 8".
The code you included in your first screenshot is not the code that it dumped on... Looking at the shortdump here's what you have.
lv_fieldname = '<GW_ITAB>-TPLNR'.
assign (lv_fieldname) to <gw_itab>.
<gw_itab> = 'TPLNR'.
insert <gw_itab> into table <gt_itab>.
This code doesn't make any sense...
What you're saying is:
<gw_itab> points to <gw_itab>-tplnr. So now it points to just a field of the structure, not the whole structure.... Then you say that field is set to 'TPLNR'. So you set the field of the original structure called TPLNR to be the string "TPLNR"...
If that's really what you're trying to do then try changing it to:
field-symbols: <field> type any.
lv_fieldname = '<GW_ITAB>-TPLNR'.
assign (lv_fieldname) to <field>.
<field> = 'TPLNR'.
insert <gw_itab> into table <gt_itab>.