Основная проблема заключается в том, что вы устанавливаете свой DataContext UserControl в свой конструктор:
DataContext = this;
Вы не должны этого делать, потому что он разбивает любые привязки на основе DataContext, например. к экземпляру модели представления в унаследованном значении DataContext.
Вместо этого вы изменили бы привязку в XAML UserControl следующим образом:
<TextBox Text="{Binding SelectedFile,
RelativeSource={RelativeSource AncestorType=UserControl}}" />
Теперь, когда вы используете свой UserControl и записываете привязка как
<userControls:FileBrowserControl SelectedFile="{Binding SelectedFile}" />
свойство SelectedFile привязано к свойству SelectedFile в вашей модели представления, которое должно быть в DataContext, унаследованном от родительского элемента управления.