the tempView matrix you construct in the CreateViewProjection method is the world orientation matrix of the camera, but you need to convert the world space into view space. Therefor invert the camera matrix to get the view matrix. The final transformation should look like
final_position = Proj * inv(Camera) * Model * position
I think that the transpose is not necessary either (transpose is often used to invert the rotation matrix part of an orthogonal matrix, but you need to take care about the position and scaling too).