Just to add the 2Gb of procedure cache (according to monCachedProcedures ) was for every proc and every dynamic SQ.
For us to use 9Gb of procedures cache at one time seems very unlikely.
I can see in sysmon that procedures are being removed from cache and written to disk.