Subdividing causes details to "lift" off object
You can add detail using creases, loop cuts and extrusion without a problem.

The subdivision surface modifier does not work (well) with triangular faces or ngons. It works best with quads (faces with four vertices).

Subdiving can cause triangles to appear, be aware that you may have to alter your geometry.

Try joining the triangular faces to merge into quads by selecting all A and pressing &#9095; AltJ. The triangles to quads operation can also be found under Mesh > Faces > Tris to Quad.

Or do the convex hull operation. In edit mode under Mesh > Vertices > Convex Hull.


In your case there are two bad edge loop. Select them with &#9095; Alt RMB. Then delete them with X > Edges.
Then select all Aand press &#9095; AltJ to convert tris to quads.





Now you can crease the edge loops.





The topology still has a problematic edge, delete the two edges as shown in the following image. Subdivide the center edge, with W > S. Then fill in the missing four faces with F.




The vertical edge crease will work now. Read up on proper topology and edge loop flow.