Hmm that doesn't make sense, you're creating a new empty matrix, then replacing that with an identity matrix, then replacing that with a new translation matrix built from the position vector.
For the sake of my sanity, could you verify that changing that code (and only that code) back to something akin to: Matrix world = SlimDX.Matrix.Translation(position); makes the problem come back? I use SlimDX.Matrix.Translation() all the time, and if there's the potential for some odd behavior with it I'd really like to know.
[size="2"]Currently working on an open world survival RPG - For info check out my Development blog:[size="2"] ByteWrangler