Hi,
Thank you for that question actually! Thanks to that I've learn that the global variable LC_ALL was important for parsing month 
It seems that you paste the wrong data or the wrong line of code because you specified a format of %m but you have %b
If i'm trying to replicate your line of code
per <- c("Jan-63", "Feb-63", "Mar-63", "Apr-63", "May-05", "Jun-11")
as.Date(per[1], format = "%b-%y") # return NA for me
as.Date(zoo::as.yearmon(per[1], format = "%b-%y")) # return 2063 Jan
as.Date(paste0("01-", per[1]), format = "%d-%b-%y") # return 2063-01-01
So one line return all in 1900 and the other all in 2000...
as.Date(format(as.Date(paste0("01-", per), format = "%d-%b-%y"), "19%y-%m-%d")) # 1
as.Date(paste0("01-", per), format = "%d-%b-%y") # 2
So you can't really apply the line of code you provide as example. I'm sorry to say that I haven't figure out a better solution than just reconstruct yourself the time period.
If someone comes up with a "real" solution I would be interested as well!
Sorry again