Prueba el siguiente código, a ver si te funciona.
Veo algunos detalles en tu código, primero, el uso de los ';' no es necesario, a menos de que sean comandos de base de datos.
Otra cosa es que el SetTransObject, es necesario sólo una vez para cada DW, no es necesario darlo varias veces.
Asegúrate que el dw_1, tenga propiedades de actualización así cuando hagas el Update se actualizará los Checkes en la Base de Datos.
Faltan algunas validaciones, pero en términos generales con lo que te pongo haces lo mismo.
LONG ll_aux
FOR ll_aux=1 TO RowCount()
If ll_aux = row Then
li_maquina=INTEGER(dw_1.getitemNumber(row, 2))
ls_nboleto=dw_1.getitemstring(row, 5)
lg_serie=LONG(dw_1.getitemNumber(row, 6))
Else
dw_1.object.eliminar.CheckBox="1"
NEXT
dw_1.accepttext()
UPDATE(TRUE, TRUE)
COMMIT;
SetNull(li_tboleto)
SELECT tipo
INTO :li_tboleto
FROM t_tipoboletos
WHERE nombre_b = :ls_nboleto;
If Not IsNull(li_tboleto) Then
dw_2.retrieve(li_maquina, li_tboleto, lg_serie)