Почему перезаписывается весь list в class?
Т.е у всех элементов в списке перезаписываются id на id текущей итерации.
У вас всего 1 элемент - Checker checker = new Checker();
Решение
class Checker
    {
        public int id;
        public List<Checker> list = new List<Checker>();

        public void add(Checker check)
        {
            list.Add(check);
        }
    }

    class Check
    {
        Checker checker = new Checker();
        public void test()
        {
            int[] ints = { 1, 2, 3 };
            foreach (int i in ints)
            {
                var checkerChild = new Checker();
                checkerChild.id = i;
                checker.add(checkerChild);
            }
        }
    }