Just off the top of my head, you could use goals set for the first of each month: Month is: January AND Day is on or after: 01. The goal will take them to the right date. Write 4 messages, one for every week in months with 30 days and a fifth to cover months with 31.
Under each goal and before each message is a wait until condition: Current day of week is Thursday. then another wait until condition: Time is: [send time].
Wait 1 day
Wait until: Thursday
repeat 5 times then next goal: Month is: February AND Day is on or after: 01.
Repeat for each month.
Don’t worry about having too many messages. Not every year will have the full amount of Thursdays, but you’re covered if they do. The goal will pull them to the next month on the first.
Wait until: Day Is Thursday will meet that criteria at midnight Wednesday/Thursday. The wait until [send time] will make it a reasonable hour. Be consistent. Pick your time or their time, but stick to it.
Not everyone will get all of the messages so don’t make the first few too specific on what week they should represent. They may come in at the end of the month, but they will go through the beginning of the messages.
However, the later messages can reflect the last weeks because the only people who see those will have been there through the whole month from the beginning.
If you want them to complete the full year, use a custom field [MyAutomationName JoinDate].
Use an If/Else to check their status: Current date is greater than [MyAutomationName JoinDate] plus 365 days.
No path goes back to start, yes path goes to goal with the same condition that will pull them down as soon as that condition is met any place above the goal. Then end.