I could be wrong, but based on the way you're "checking" the height post-transform, the problem is most-likely due to your vector object having pixel dimensions that aren't full integers, in which case the transform tool may round up or down but the selection area is always rounded up.
If you have, say, a circle that is exactly 100.1 pixels in diameter with a reference point in the exact center as is normal, then Photoshop will position the reference at a position that is a full pixel in both X and Y value (e.g. (200,200)
). In reality, your reference point will be placed between the 200th and 201st pixels (along both the X and Y axes). This means the edges of your circle will extend .05px beyond the 150th and 250th pixels.
The transform tool in Ps won't display non-integer pixel values, so it'll round them down to the nearest pixel, which will show your circle to be 100x100 pixels. However, since Photoshop is a raster image editing program, it has to render everything in raster form (as evident when you zoom into vector objects). It uses anti-aliasing to render subpixel details, so if your circle only extends 5% into a particular pixel, then it'll fill that pixel in at 5% opacity (this is a simplification, but you get the idea).
But that means when you select the layer contents using Ctrl+click, it will make a selection that has a max dimension of 102x102 pixel. It may only be selecting those last 2 rows/columns of pixels on the outer edges with 5% opacity, and the selection outline may be rendered at the 100px mark, but it's still selecting 102x102 pixels because Ps can't select only the left half of a pixel or only the upper right corner of it, etc.
Solution?
I would first try to resize the object in Illustrator as danferth suggests. Make sure each dimension is a whole value, preferably the exact same size as the final raster form you want. Also make sure when you're doing this that the position of the reference point is also at whole pixels or exactly half pixels (if that dimension is odd).
Secondly, when you are transforming it in Photoshop, move the reference point to a corner as Alexei suggested and make sure you specify both dimensions in pixels, because if one is in percents, then that dimension is a lot less accurate, and I have no idea how Photoshop deals with that. It may match the less precise dimension with the more precise one, or it may just go with the X dimension or Y dimension, etc.
If that doesn't work, then lay down some guides where you want the bounding box to be. I usually use a rectangular marquee and draw out the exact position I want my object to fit into; then slap down guides along each edge, then do the transform with snap to guides on.
If all else fails, you can always just trim the extra partial pixels off. Often when Ps exhibits this sort of behavior, the pixels are just barely filled, and it doesn't really matter if you just clear those pixels.