I needed a similar workaround in doct:
https://github.com/progfolio/doct/blob/80d291e5f1cbdabd4eb7f88c917653c59d3f14be/doct.el#L589-L592
I restore `org-capture-plist' to the value of
`org-capture-current-plist' after the
`org-capture-before-finalize-hook' is run.
As of:
https://code.orgmode.org/bzg/org-mode/commit/3ba4f056d736c4ed4261ad3b234e0199edec6e8c
`org-capture-current-plist' is available during all hooks except
`org-capture-after-finalize-hook'.
So `org-capture-plist' should be ignored in favor of
`org-capture-current-plist' after the initialization of the
capture process.
I came to the same conclusion. Restoring `org-capture-plist' after
finalizing a capture should not cause any harm.