since you seem to be interested in a programatic approach, instead of building a model for every situation have you thought about making a single cashflow model that can do almost all of this stuff?
eg, if t represents a period of your choosing (say, 1 month).
c(t) = cashflow at time t
i(t) = effective interest rate per period, between t and t+1
f(t) = fund value at time t
Then you have (if t=0 is the start of the contract):
it isn't challenging to make a computer program or even a spreadsheet that will start at t=0 and loop over as many future values as you want. its not hard to get present values and other items of interest either.
Then every time a client presents you with a "different" problem, you only need to change the definition of c(t) and i(t).
Since you appear to be a commercial/real world poster, i draw your attention to my signiture.