When I change c lattice parameter and optimize the structure with DFT-D, every time I get a significantly different geometry with different energy? Why is this happening with DFT-D?
Simply put, a geometry optimization finds a local minimum. Many such minima may exist for a given system and it is up to the user to ensure that a reasonable minimum is used for further calculations. Techniques may include using many handmade starting geometries, using a random mutation algorithm or starting from known, experimental structures.