Почему одинаковые интерфейсы 'not assignable'?
Потому что это:set setCurrency(currency: 'RUB'|'USD'|'EUR'|'AUD') {
  this.preferences.currency = currency;
}
Соответствует вот этому, но никак не интерфейсуtype Currencies = 'RUB'|'USD'|'EUR'|'AUD'
Дальше, думаю, все ясно.
Потому что интерфейс Currencies  подрозумевает что currency  это обьект, а не стринга