Одна из известных проблем на iOS с прокручиваемым body при скролле на фиксированно или абсолютно расположенных элементах. Пример ниже.

На основных браузерах это решается путем добавления overflow: hidden на body. Но, увы, для iOS этого мало. Решение есть, решений множество, и большинство из них с применением js. На мой взгляд это очень не правильно, это все-таки проблема CSS. Моим рабочим решением стало фиксированое body со 100% шириной и высотой.

body.no-scroll {
   height: 100%;
   width: 100%;
   position: fixed;
   overflow: hidden;
}

Этого вполне достаточно, чтобы body оставался неподвижным и скролл был только на модальном окне.

Буду рад, если эта заметка кому-то сократит время поиска проблемы и ее решения.