Yearly plans are not the issue. The real problem is to work with different plan intervals: for instance, when a customer switches from a yearly plan paid in advance to a monthly plan, you need to prorate the period they used your product and issue a credit note to refund them for the rest of the period.