Thanks for the detailed repro steps - that helped pinpoint it.
What was happening is exactly as you described: with ghost entities, vanilla paste can leave the inserter filters on assembler ingredients, while APS correctly sets the logistic-network limit from the ghost recipe. So you ended up with mixed behavior (correct limit, wrong whitelist).
I’ve added a fix so ghost assembler recipes are read correctly in this flow, and when pasting to an inserter that picks up from a ghost assembler, APS now forces the inserter whitelist to the assembler product (e.g. heating-tower) instead of leaving ingredient filters.
If you can, please retest on the latest build and let me know if your exact setup (ghost assembler -> ghost inserter -> ghost passive provider) now gives:
logistic condition: product with expected limit
inserter filters: whitelisted product only
If you want, I can also give you a shorter “mod portal style” version of this reply.