I have introduced just one change in your code:
noteViewModel = ViewModelProviders.of(this).get(NoteViewModel.class);
instead of:
noteViewModel = ViewModelProviders.of(getActivity()).get(NoteViewModel.class);
in Fragment‘s onCreate(Bundle) methods. And now it works seamlessly.
In your version you obtained a reference of NoteViewModel common to both Fragments (from Activity). ViewModel had Observer registered in previous Fragment, I think. Therefore LiveData kept reference to both Observer‘s (in MainFragment and TrashFragment) and called both values.
So I guess the conclusion might be, that you should obtain ViewModel from ViewModelProviders from:
FragmentinFragmentActivityinActivity
Btw.
noteViewModel.getTrashedNotesLiveData().removeObservers(this);
is not necessary in Fragments, however I would advise putting it in onStop.