Thank you!

Someone else pointed out that Dictionary doesn't accept an offsets buffer, therefore it should have been:

    column_vectors.push(Vector.new(Data.Dictionary(new Dictionary(new Utf8(), new Int32()), 0, element_count, null_count, nullmap_buffer, interned_buffer, dictionary)));

-- i.e. without the zero after nullmap_buffer. This solved the problem.