rupeshpahwa,
It is not horribly wrong, but it is not the way I would do it.
For starters, the dimension across the corners is wrong. This is controlled by the width across the flats. The number applies across the sharp corners, which almost certainly, will be filed down a bit, rendering your very accurate tolerance hopeless. You can apply a reference dimension. You can provide a detail to show how the corners are to be finished, with a resulting real dimension and tolerance.
It would be legal, however silly, to leave off the across flats dimensions, and apply a basic dimension across the corners to the theoretical points. You would have to apply a profile tolerance to the outline.
You need only one reference to the across flats dimension. Apply a 3X to it, and the positional tolerance. I would add a reference to datum_B to whatever feature control frame you use. Your tolerances are very accurate. I do not know your requirements, but this is way more accurate than you need for wrenching.
Consider using a profile tolerance to control your hexagonal shape.
JHG