Its a pretty old thread but I stumbled upon a similar problem where the patch source wasn't getting replaced by my custom config patch file. I ended up completely avoiding the patch:attribute approach instead used the set:value approach.
Something like below:-
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/">
<sitecore>
<pipelines>
<initialize>
<processor set:type="Framework.Pipelines.Filters.InitializeGlobalFilters, DD.Framework"/>
</initialize>
</pipelines>
</sitecore>
</configuration>
One prerequisite for this set approach is to have the configuration root node set as:- xmlns:set="http://www.sitecore.net/xmlconfig/set/"
A deeper explanation has been provided on an informative blog by Mike Skutta https://mskutta.github.io/2017/08/09/sitecore-patchinstead-in-config/