Here's one way.
It uses two formulas, one to create an Index column on Table 1 (the checklist), the other to capture the checked items and copy then to Table 2 (the To Do table).
The formula shown in entered in C2 of the checklist table, and filled down to the end of the column. C1 may be left empty, or may contain a text value (which MAX will read as 'zero')
In use, column C is needed by Numbers, but the user has no need to see it, son the column may be hidden, as it is below:
The formula below the table is entered in A2, then filled down to the last row of column A.
IF first checks the index column (C) of table 1 to determine if all checked items have been transferred.
If so, it places a null string in the cell, making it appear empty.
If not, MATCH searches Column C of Table 1 for the number one less than the current row, and returns the row number of the row containing that index number in the list in column C.
MATCH passes the position number to INDEX, which returns the value in that row of column A.
NOTE: When you create a new Sheet on which to place the ToDo list, the Sheet will come with a Table, named Table 1.
This will cause no issues with the first formula, which references only cells on its own table.
But the second formula references cells on Table 1 (on Sheet 1). Renaming one or both tables so that each has a distinct name let's Numbers recognize which table is the one containing the cells in column A and Column C without requiring the Sheet name o be included. Do the renaming before entering the formulas, then use the name of the checklist table where I have used "Table 1"
Regards,
Barry