The process is fairly easy. The hard part is keep one's mind straight as to what coordinate system the data is and what coordinate system you need to convert to. I believe in general, data you get from a VBA routine is in WCS. Data you want to use to create needs to be in the current UCS. The Utility.TranslateCoordinates converts a coordinate in either direction. You will need to read the AutoCAD VBA Help to make sure the argument order is correct.
If PickedPoint1 is a coordinate then:
ThisDrawing.Utility.TranslateCoordinates(PickedPoint1, acWorld, acUCS, False) returns PickedPoint1 converted from acWorld to acUCS
Thus,
PickedPoint1 = ThisDrawing.Utility.TranslateCoordinates(PickedPoint1, acWorld, acUCS, False)
changes PickedPoint1 from WCS to UCS.
going the other way:
ThisDrawing.Utility.TranslateCoordinates(PickedPoint1, acUCS, acWorld, False) returns PickedPoint1 converted from acUCS to acWorld
So,
PickedPoint1 = ThisDrawing.Utility.TranslateCoordinates(PickedPoint1, acUCS, acWorld, False)
would change PickedPoint1 from acUCS back to acWorld.
This would be true in this example only if you executed those functions one right after the other because a point you get from a VBA method, as implied by the variable named used here "PickedPoint1", probably only comes as a WCS point. (Just like what you found. "when i get data through acdbentity, returned coordinate are in wcs" ) Therefore to try to convert it as if it were a UCS point would result in some odd coordinate. Thus is the hard part part in keeping one's mind straight.
Plus, considering I might have the argument order backwards, you need to read the AutoCAD VBA help on this one.