It's not a color shift at all, it's a matter of perception.
When profiling dye-sub on chromaluxe I regularly get profiles that read as having a L* minimum value as "0" which, afaik, shouldn't be possible except in a black hole. One problem is that we are dealing with dyes here, not pigments, so there is no way to get an actual neutral black-- it's simply a combination of colors in a fragile balance, which are INCREDIBLY affected by the spectra of the viewing light. If you measure the darkest black values in a profiling chart on chromaluxe with a spectro, even though it may visually look "neutral," it will measure with a huge amount of energy in the near-infrared part of the spectrum. The brighter the light you shine on the patch, the more red you'll see in it-- This is seen by the spectro, which compensates for it by adding green (cyan, really).
I've done experiments with trying to measure through an IR filter, which was interesting, but not very practical, as it severely reduced the amount of light input and made the readings really unstable. Additionally, I've used custom lighting measurement spectra within i1profiler to simply devalue the importance of the deep red end of the spectrum-- either by simply zeroing out values in the text file for the lighting measurement, or by measuring a custom light source with very little energy in that end of the spectrum (like some LEDs).
But so far the best method I've found is by using basiccolor IMprove or ColorLogic ColorANT to change the measured spectrum of the "K" value to something that was measured from a pigment ink in another ICC profile. This sounds ridiculously convoluted, I know, but it does work. Since I'm not working towards any kind of proofing standard, the perceptual neutrality that results from this method is the endgame.
essentially what kers said is not far off the mark-- measuring with an x-rite device simply isn't quite adequate. But this applies to all other spectros as well (i've tried barbieri also). Essentially as I can define it myself, the problem stems from the fact that our human visual system stops seeing color at a certain lightness value, and we begin to perceive the grey axis as neutral once it dips below a certain threshold, whereas the spectro continues to see this as very red. Additionally, the more light present in the room, the redder the image will appear to the human eye-- I know of no other printing process that changes color based on the AMOUNT of light present, and I also know of no color management system which is capable of taking this into account. Ideally it seems like this would be most closely solve-able via improvements to the custom lighting measurement part of profiling software, things can already be affected by the amount of energy in a given part of the spectrum.
This is all in addition to the fact that the temperature/pressure/time of the transfer process can greatly affect the color-- I find that it is incredibly easy to "toast" the surface of the chromaluxe by leaving it in for a little too long (or even letting it sit under the heated platen after pressing time expires for too long) which further compounds the incredible difficulty of getting repeatable results.
When transferring to polyester fabric, the process behaves much more like you'd expect it to in any other print process-- so the powder coat on the metal plays a significant part in the equation. It may be completely different for any other manufacturers, but for chromaluxe, these are my general findings--
-Cody