Hey Matt,
I'm a little late replying but I thought I'd still contribute, and you never know, this might bump your question up the list and get a few more people viewing it
We have 25 objects as well, but only 45 allocation lines. Out of curiosity, do you use recursion at all, and is this one of the reasons you have so many allocation lines? Or have you just got lots of different allocation strategies for each object?
If so, an interesting article for your team could be this: The Evolution of Internal Charging and Recursion at sIT Solutions (not trying to say that it's wrong, just that the model will be extremely complex, and may start to impact calculation times in the long run)
Thanks,
Oli