I would just have one formula field something like this... just add as many years as your longest contract, this one just to the following year, so if you have contracts over 12 months just add a bit on the end to account for that.
//work out monthly cost
var number MonthlyCost = [Order Total] / 12;
//define contract length
var number contractLength = [Contract Period in Months];
//remaining months in year including current month
var number monthsLeftInCurrentYear = 13 - Month([Order Date]);
//calculate current month, taking into account if the contract ends before the end of the year
Year([Order Date]) & " " &
ToText(If ($contractLength - $monthsLeftInCurrentYear <= 0, $contractLength * $MonthlyCost, $monthsLeftInCurrentYear * $MonthlyCost)) &
//calculate the next year, taking into account if the contract ends before the end of the year
If ($contractLength - $monthsLeftInCurrentYear > 0, "\n" & ToNumber(Year([Order Date]) + 1) & " " & If($contractLength - $monthsLeftInCurrentYear <= 12,ToText(($contractLength - $monthsLeftInCurrentYear) * $MonthlyCost),ToText(12 * $MonthlyCost)))
------------------------------
Luke McInnes
------------------------------