I do something similar to change identity and/or input
language based on addressee. I just put it in a hook
(add-hook 'message-setup-hook 'rjn-change-stuff-by-addressee t)
and that works for me; the appropriate identity gets chosen
via gnus-alias-use-identity when the message reply is set up
You might want to look at what gnus does. In particular, it copies the
article buffer first using gnus-copy-article-buffer (in gnus-msg.el)
before considering the styles. That copy of the article buffer should
be accessible in your max-gnus-predicate function... if I understand the
gnus code corr