I don't think you can't use a non-contigous range to filter by, all your ranges are non-contiguous.

Also, none of them include the header.

Perhaps you should copy the criteria to another range and then filter by that.
Dim rData As Range, rCrit As Range
    Set rData = Intersect(Sheet1.UsedRange, Range("B:B"))
    Set rCrit = Sheet1.Range("FirstNamedRange")
 
    rCrit.Copy
    With Range("L1")
        .Value = Range("B1").Value
        .Offset(1).PasteSpecial xlPasteAll, SkipBlanks:=True
        Set rCrit = .Item(1).Resize(rCrit.Cells.Count + 1)
    End With
    
    rData.AdvancedFilter xlFilterInPlace, rCrit