Hi Sam, I would consider using a each multiplier for a several multiplications actions by placing a mux before the mul inputs that way you will be able to use each mult18x18 for two or more multiplication actions just by changing the mux select input.
another sugessttion is to connect the mult18x18 to a memory block and that way using it as a mux and for the varaibles and result registers.
all of the above suggestions are valid if the filter sampling time enables you to do your multiplication in steps and not in one clock.
Another suggestion is to use MAC ("multiply and accumulate") unit that can be very efficient for implementing filters (you can look for it in the web).
Hope its helpful.
Moti.