I am running into similar problems. I'm using tile entity to store the orientation of my dyed stairs, and using the damage to determine their color.
When I place the block, everything renders fine. When I log out and back in, the orientation of the stairs changes to what I set the value to initially, which makes all the stairs point in the same direction. Am I missing something?
I'm using the details here on setting up Tile Entities (as well as what I see done by the original minecraft code)
http://www.minecraftforge.net/wiki/How_to_use_NBT_Tag_Compound#Making_the_TileEntity
You can find my code at:
https://github.com/Kyraleese/Mod-To-Dye-For-1.3.2.001
If someone could point me in the right direction for what I might be forgetting to do, I would greatly appreciate it. I keep thinking that I need to do a readFromNBT instead of referencing ourEntity.orientation directly like I am.