Not sure where this crept in but a helpful redditor pointed out that U.S. dates weren’t working in the app despite being tested in earlier versions.
It turns out that 1 is not always the same as 1!
A couple of date based functions were based on reading the Integer value of settings.USDate:
if(settings.USDate == 1){ // Do something }
Unfortunately, even though USDate is an integer, it is stored in CoreData and as such needs to be cast as an integer for the comparison to work:
if(settings.USDate.intValue == 1){ // Do something }
A small change but with a big effect.