Thank everyone for all the relative insight!
I believe I found a solution with regards to amortizing mulitple loans at once; In the section where you are creating cluster indexes:
CREATE CLUSTERED INDEX IX_#amort_period
ON #amort(period)
I add the following loop:
DECLARE @loan_id INT
SET @loan_id = 1
WHILE @loan_id <= (select max(Loan_ID) from loans)
BEGIN
And it seems to be working like a charm and to the penny in my case. Thanks again for all your help! 🙂