Ran into this today and came across this question.
You may need to wrap your modal in its own SafeAreaContextProvider.
See the doc here: https://www.npmjs.com/package/react-native-safe-area-context#safeareaprovider
You should add SafeAreaProvider in your app root component. You may need to add it in other places like the root of modals and routes when using react-native-screens.
In my case, I was using Portal from react-native-paper, and adding a SafeContextProvider nested directly under the Portal solved my problem. In your example wrapping the component that the Stack.Screen serves might have done the trick.