What if you setup a new repo using:
bundle exec jekyll new ../new-project
And check there?
cd ../new project
bundle config set --local path vendor/bundle
bundle exec jekyll serve --trace
And then edit a file and check for reloading.
If that works, then we know the problem is your project code and dependencies and your global Ruby environment is fine.
Can you also verify using Ruby 2.7? Ruby 3 is out but not reliable for Jekyll yet.
One other thing. Try with incremental flag off. With incremental on, I found that editing a post will rebuild the post itself. But any pages which list that item in their post list or menu will be outdated.
Jekyll 4 has great speed gains with caching and it is more friendly in what you get compared with incremental