@jakubz
According to the Recurrence Trigger documentation
the
| Property |
JSON name |
Required |
Type |
Description |
| |
|
|
|
|
| Frequency |
frequency |
Yes |
String |
The unit of time for the recurrence: Second, Minute, Hour, Day, Week, or Month |
I believe "Year" might not be supported
Instead of using Year, you may be able to use 12 and Month instead to make it run "once every 12 months"

Same docs also state that :
| Start time |
startTime |
No |
String |
Provide a start date and time, which has a maximum of 49 years in the future and must follow the ISO 8601 date time specification in UTC date time format, but without a UTC offset:
YYYY-MM-DDThh:mm:ss if you select a time zone
-or-
YYYY-MM-DDThh:mm:ssZ if you don't select a time zone
So for example, if you want September 18, 2020 at 2:00 PM, then specify "2020-09-18T14:00:00" and select a time zone such as Pacific Standard Time. Or, specify "2020-09-18T14:00:00Z" without a time zone.
Important: If you don't select a time zone, you must add the letter "Z" at the end without any spaces. This "Z" refers to the equivalent nautical time. If you select a time zone value, you don't need to add a "Z" to the end of your Start time value. If you do, Logic Apps ignores the time zone value because the "Z" signifies a UTC time format.
For simple schedules, the start time is the first occurrence, while for complex schedules, the trigger doesn't fire any sooner than the start time. What are the ways that I can use the start date and time?
|
And furthermore, according to the Patterns for start date and time,
| Start time |
Recurrence without schedule |
Recurrence with schedule (Recurrence trigger only) |
| |
|
|
| |
|
|
| Start time now or in the future |
Runs the first workload at the specified start time.
Recurrence trigger: Runs future workloads based on the last run time.
Sliding Window trigger: Runs future workloads based on the specified start time.
|
Runs the first workload no sooner than the start time, based on the schedule calculated from the start time.
Runs future workloads based on the specified schedule.
Note: If you specify a recurrence with a schedule, but don't specify hours or minutes for the schedule, Logic Apps calculates future run times by using the hours or minutes, respectively, from the first run time.
|
You can set a start date and time in the near future - then it will run the first time on that date - next time it will run each "12 Months" from that start date and time. It should run at exactly that same time 12 months later from the first time it ran.
Check if it helps.
You may also find this post helpful:
schedule a flow to run quarterly, annually, and Biennially
For example, setting a value of 16 Months works, but not 17 months according to above post, I can reproduce it even now (with possibly a difference in the wording of the error message):

Since 12 Months is less than 17 Months, you should be fine for your use case @jakubz .