How does dye migration happen?
Dye migration happens 99.99% of the time on garments with polyester threads.
Dye migration happens because of how polyester thread is colored. The dye house can set the dyes with higher heat or lower heat. How the dyes are set will directly affect how easily the garment will bleed (Low heat settings = lots of dye migration and bleeding issues. High heat settings = a temperature-stable garment with few issues).
When you cure ink, you heat it up to the point where the fabric gets hot enough to possibly release those dyes. Its settings will produce different results: Low heat fabric causes massive color changes on the garment while high heat fabric creates a stable print that does not bleed.