Want to import already defined physical groups of Microstructure in Gmsh to FEnics

One issue is surely the fact that dx is not aware of the subdomains. Try having a look at Transitioning from mesh.xml to mesh.xdmf, from dolfin-convert to meshio - #186 by gangadhara or similar messages in that same post and trying some of the solutions posted there. Note how the code in that post ends with

ds = Measure("ds", domain=mesh, subdomain_data=mf)
dx=Measure("dx", domain=mesh, subdomain_data=cf)

which is the way to define measures which are aware of markers. That might also simplify the part about Defining boundary conditions, and allow you to use markers defined in the geo file rather than defining them again in the python file.