Not really, unfortunately. How are you determining memory usage? Do you have any "cache keys" for your cache managers (except AUTHENTICATED_USER, which is the default)? There is a rendering potentially stored for each cache key when the cache key differs per request.
Some of the dtml methods being cached have dtml namespace cache keys set (no request vars are used) and appear on all accounts to being working as expected, with the expected number of enteries for these dtml methods. Most create one entry, a few others create anywhere between 5-20 enteries as the dtml keys change as I would expect. The dtml vars are set by dtml-let statements before the method or script is called.
Maybe try storing your "transient object container" in the "main" ZODB instead of storing it in /temp_folder/session_data (which is backed entirely by RAM). I don't recommend doing this long-term but it might be helpful during diagnosis.
Do you mean to just move the "transient object container" to the zope root folder? What is bad about doing this?
The only other thing I can suggest is to try to make a reproducible test case and post the steps (and if possible a .zexp) in the Zope.org collector.
Richard.