Ваша функция mk-w не возвращает матрицу. Попробуйте следующее:
(define (mk-w b l c)
(cond
((and (< l 8) (< c 8))
(begin (Mod-matrix! b l c)
(mk-w b l (+ c 2))
b))
((and (>= c 8) (< l 8))
(begin
(mk-w b (+ l 2) 0)
b))))
Обратите внимание, что в каждом случае последнее выражение в начальном блоке является самой матрицей, это потому, что возвращаемое значение начального блока является значением последнего выражения. В вашем сообщении эти последние выражения вернули неопределенное значение.