Despite documentation implying otherwise, only two out of the three collection associations support the 'replace' (and by extension, '=') method. The third, HasManyThroughAssociation, does not.
Fortunately, it is pretty easy to add the support. I've done that with my patch (failing tests included) posted on this ticket:
http://dev.rubyonrails.org/ticket/11040
Please take a look and consider supporting this patch.
...and we thank you for your support.
-Chris Cruft