mielkew27,
these lines of code:
If .FilterMode Then
.ShowAllData
End If
removes any filtering conditions. So I am not sure where you are applying a filter. Enabling autofiltering allows you to manually (or with code) apply filtering conditions to an existing autofilter on a protected sheet.
You also might look at your autofilter range and make sure the filter includes all your data.
Sorry, I haven't been using power query as it doesn't work at my site. So I can't provide any insight on your second question.
--
Regards,
Tom Ogilvy