Answer
Check that the specific handling projection backing that Gantt (like ResourceMonitoringGanttHandling) has its own explicit grant set to Read Only at the Access Level, configured directly in the web client's own permission-set editor — a general page-level or broader permission-set read-only setting carried over from elsewhere isn't sufficient on its own for an interactive component like a Gantt chart; the specific handling projection needs its own Read Only access-level grant for drag/resize edits to actually be blocked.