OK, but if you are just wanting to draw a box at some arbitrary plane coordinates, why not just either draw it directly at the plane, or, draw it at the world origin then transform it to the new plane. If you are going to change the CPlane back to what it was before immediately after making the box, there is no reason really to change the CPlane at all.
Hang on a few, I can create a sample.
Two ways to build the box directly on the plane:
import rhinoscriptsyntax as rs
#these points are arbitrary for the example
pt1=rs.coerce3dpoint([10,10,10])
pt2=rs.coerce3dpoint([20,20,20])
pt3=rs.coerce3dpoint([0,20,10])
c_plane=rs.PlaneFromPoints(pt1, pt2, pt3)
leng=3000
wid=1200
ht=400
c1=c_plane.Origin
c2=c1+leng*c_plane.XAxis
c3=c2+wid*c_plane.YAxis
c4=c1+wid*c_plane.YAxis
c5=c1+ht*c_plane.ZAxis
c6=c2+ht*c_plane.ZAxis
c7=c3+ht*c_plane.ZAxis
c8=c4+ht*c_plane.ZAxis
rs.AddBox([c1,c2,c3,c4,c5,c6,c7,c8])
or, a little more RhinoCommon
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
#these points are arbitrary for the example
pt1=Rhino.Geometry.Point3d(10,10,10)
pt2=Rhino.Geometry.Point3d(20,20,20)
pt3=Rhino.Geometry.Point3d(0,20,10)
plane=Rhino.Geometry.Plane(pt1, pt2, pt3)
#another way of making the box without 8 corner points...
box_len=Rhino.Geometry.Interval(0,3000)
box_wid=Rhino.Geometry.Interval(0,1200)
box_ht=Rhino.Geometry.Interval(0,400)
box=Rhino.Geometry.Box(plane,box_len,box_wid,box_ht)
sc.doc.Objects.AddBox(box)
sc.doc.Views.Redraw()