How to checkout a pipeline with the same scm object as the caller?

Currently, I have the following setup:

A Multibranch pipeline with a Jenkinsfile in git, which has a stage that calls another regular pipeline and passing certain Git attributes as parameters so it can properly checkout its own Jenkinsfile and the rest of the repo. The arguments are typically the git hash/PR id and I’ve hardcoded a refspec in the configuration of that job so it can recognize branches and PRs, otherwise it may not find the commit sometimes.

Why am I doing that? The reason is because of a bug in Jenkins. My initial goal was to have that external pipeline as a regular stage inside the main Jenkinsfile, but I hit this bug:
Long story short - I can’t escape the global Docker agent context in a stage which I want to test something elsewhere without Docker. Due to this limitation, I’m forced to workaround this by splitting my stage to a separate Jenkinsfile (i.e. Jenkinsfile-my-test) and that works fine so far. I would like to make it more intelligent and give the external pipeline my SCM object without me having to handle all that.