Color and numerical values have no direct mapping. That is the hex value has no specific meaning as a color. You still need something called a profile (and profile intent) to tell the computer what the color actually is.
To convert hex to CMYK you first need to determine the color via the RGBspaces profile, and then convert it to CMYK using the CMYK spaces profile. The intent comes into play when you need to describe what to do with colors that can not be converted. This is a insanely convoluted idea (see ICC Color Workflow, for a decent primer), that keeps confusing and confusing.
Now for the answer to: Why do you get different CMYK value? Simply put, you have a different color profile and or intent in profile. Therefore showing clients hex values without telling what color space is meaningless. Anlso giving CMYK values is meaningless without a color space.