It seems that setblock doesn't have a thing that will replace certain blocks, my bad. Fill is unaffected by this, I must have tested it wrong.
What I expected to happen was when I set the command on a clock "execute @p ~ ~ ~ setblock ~ ~-1 ~ planks 0 replace dirt" that it would only replace dirt blocks with planks.
What happened was it replaced every block with planks.
After further testing, this also happens with the fill command and the setblock command (as opposed to only happening when used in combination with /execute).
setblock doesn't have the "replace" filter
only "replace" the old block