For anyone else that has this issue and comes across this super-old post via Google:
For "live" sorting, in addition to setting up the SortDescriptions, you must also add LiveSortingProperties (which takes one or more strings, using the System namespace from WindowsBase assembly), and set IsLiveSortingRequested = True.
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
<CollectionViewSource x:Key="ChannelsToAddView" x:Name="ChannelsToAddView" Source="{Binding DiscordChannels}"
Filter="ChannelsToAddView_Filter" IsLiveSortingRequested="True">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="DiscordChannelName" />
</CollectionViewSource.SortDescriptions>
<CollectionViewSource.LiveSortingProperties>
<s:String>DiscordChannelName</s:String>
</CollectionViewSource.LiveSortingProperties>
</CollectionViewSource>