I swapped a dozen of S9s hash boards and never faced the code/product-ID problem, it only started to appear with the S9k/S9se, and moving onwards to the latest gears, you will notice that each mode has a few code numbers identified as product number, mostly 4 of them [0,1,2,3], usually, the kernel log reads that number before it does anything else, on the S17 pro this is what you get
2021-01-23 21:14:47 driver-btm-api.c:589:get_product_id: product_id[0] = 0
2021-01-23 21:14:47 driver-btm-api.c:589:get_product_id: product_id[1] = 0
2021-01-23 21:14:47 driver-btm-api.c:589:get_product_id: product_id[2] = 0
It's different with every miner and firmware version, but it's easy to spot, you want all 3 hash boards to have the same id, if one is different the miner won't work, based on a random (unverified) observation of my own, if you bought the same batch, your chances will be a lot higher.