Before you can calculate the APR you must verify the AF and payment schedule. Unless you have to sift through lots of junk fees to pick out those which must be treated as PFCs, the AF's relatively easy to calculate.
The payment schedule's much harder since there can be several "layers" to recalculate. The base layer is usually the P&I at the note rate. Additions and subtractions due to a variable rate's discounts or premiums will cause a layer of steps. PMI premiums are another layer. Typically, MI renewal premiums are calculated as a percentage of the original loan amount. As the loan pays down, this percentage may decline annually or in multi-year intervals. Eventually, the loan reaches the point of termination mandated by the Homeowner's Protection Act. At this point, the MI renewal premiums go to $0.00 for the remainder of the loan. If you can't determine the total picture for MI renewal premiums, discuss it with the loan servicing manager.
After you've verified the layers, stack them up and turn them into a disclosure. It could have several groups of payments of widely varying amounts.
Using the exact payment schedule and a correct AF, APRWIN will give you an accurate APR for closed end loans with any number of features. It appears to calculate the FC also, but the result is no better than your classification of the PFCs.
_________________________
...gone fishing.