Hi,
I have noticed some issues with trying to create sprites at runtime and dealing with platform support. I remember testing this a while ago, so I think its a relatively new thing. The only way I can get hd graphics to show up is to have a sprite already instantiated in the editor and to leave its collection data alone.
here is the code that I am using to set the sprites at run time. The first modifies a test sprite in the scene, and the next adds a tk2dsprite to an empty game object and then sets its sprites. both of these show up as the standard graphic(i drew SD and HD on the graphics so that i would know), and the one that uses the same collection, but is not touched by code shows up as HD.
// Load the sprite collection data
tk2dSpriteCollectionData data = tk2dSystem.LoadResourceByName<tk2dSpriteCollectionData>("dataName");
// Set the sprite with the loaded data.
_testSprite.SetSprite(data, "CardBack");
// Add a sprite component and then set the sprite
tk2dSprite testSprite1 = _testGameObject.AddComponent<tk2dSprite>();
testSprite1.SetSprite(data, "CardBack");