When you bias the base of the transistor using a resistor divider, the voltage at the base will vary with the applied voltage, therefore the current that is sunk will also vary. You want to maintain a constant voltage at the base, so try replacing the lower resistor on the base with a reverse biased zener. Better still, replace the whole circuit with a current sink IC or a linear LED driver to save on parts, space and time.