в вашем коде
.map { AddressLoadedState(it) }
дает
Observable<AddressLoadedState>
Функция onError ожидает функцию, которая принимает исключение и возвращает что-то, расширяющее T.
Observable<T> onErrorReturn(Func1<? super Throwable, ? extends T> resumeFunction)
В этом случае T является AddressLoadedState.AddressErrorState не расширяет это, поэтому компилятор будет жаловаться.
Вы можете разбить операторы на более чем одну строку, чтобы помочь компилятору, чтобы показать, что T на самом деле является AddressUiState.Или вы также можете указать компилятору на функцию map, например:
return service.getAddresses(id)
.map<AddressUiState> { AddressLoadedState(it) }
.startWith(AddressLoading)
.onErrorReturn { AddressErrorState }
.subscribeOn(Schedulers.io())