Это базовое поведение C #.
Свойство ContentSize представляет собой SizeF, который представляет собой структуру (= тип значения), а не класс (= ссылочный тип).
Calling
scrollView.ContentSize.Width = 100;
не работает, поскольку вы устанавливаете значение для свойства скопированного объекта.
Calling
scrollFrame.Width = width * pageCount;
работает, потому что, хотя RectangleF также является структурой, вы устанавливаете значение для реального объекта.
Аналогично,
ScrollView.ContentSize = scrollFrame.Size;
создает копию, но устанавливает новый объект после '=' и работает правильно.