Overview
At first glance, this seems a simple question of writing down the Lorentz transforms for velocities. However, then raises two further questions as to why Lorentz transforms and why can we not have two or more Lorentz groups on spacetime. Additionally, I saw you asking in a comment why massless objects have to travel at the speed of light which I will also include. First the easier part:
Lorentz Transformations on Velocity
If we assume that transformations between frames of reference are Lorentz transforms:
$\begin{cases}ct'=\gamma\left(ct-\beta x\right)\\x'=\gamma\left(x-\beta ct\right)\\y'=y\\z'=z\end{cases}$
You are correct in considering time dilation, but we also need to consider length contraction:
$$\begin{align}u'_x=\frac{x'}{t'}&=\frac{\gamma\left(x-\beta ct\right)}{\gamma\left(t-\frac{1}{c}\beta x\right)}\\&=\frac{u_x-v}{1-\dfrac{u_xv}{c^2}}\tag*{As $u_x=\frac{x}{t}$}\\u'_y=\frac{y'}{t'}&=\frac{y}{\gamma\left(t-\frac{1}{c}\beta x\right)}\\&=\frac{u_y}{\gamma\left(1-\dfrac{u_xv}{c^2}\right)}\tag*{As $u_y=\frac{y}{t}$}\\\text{Similarly }u'_z=\frac{z'}{t'}&=\frac{z}{\gamma\left(t-\frac{1}{c}\beta x\right)}\\&=\frac{u_z}{\gamma\left(1-\dfrac{u_xv}{c^2}\right)}\tag*{As $u_z=\frac{z}{t}$}\end{align}$$
Then if we consider an object travelling at a velocity $\vec u$ in a frame of reference $S$ then using both time dilation and length contraction we find that the velocity of an object in a frame of reference moving at a velocity $v$ in the $x$-direction relative $S$ is given by:
$$\vec u'=\begin{pmatrix}\dfrac{u_x-v}{1-\dfrac{u_xv}{c^2}},&\dfrac{u_y}{\gamma\left(1-\dfrac{u_xv}{c^2}\right)}&\dfrac{u_z}{\gamma\left(1-\dfrac{u_xv}{c^2}\right)}\end{pmatrix}$$
where $\gamma\equiv\left(1-\beta^2\right)^{-\frac{1}{2}}$ and $\beta\equiv\dfrac{v}{c}$
Now we are interested in speed not velocity so:
$$\begin{align}u'&=\sqrt{u_x'^2+u_y'^2+u_z'^2}\\&=\frac{1}{1-\dfrac{u_xv}{c^2}}\sqrt{u_x^2-2u_xv+v^2+\gamma^{-2}\left(u_y^2+u_z^2\right)}\\&=\frac{1}{1-\dfrac{u_xv}{c^2}}\sqrt{u_x^2-2u_xv+v^2+\left(1-\beta^2\right)\left(u_y^2+u_z^2\right)}\\&=\frac{1}{1-\dfrac{u_xv}{c^2}}\sqrt{u^2-2u_xv+v^2-\beta^2\left(u^2-u_x^2\right)}\\&=\frac{1}{1-\dfrac{u_xv}{c^2}}\sqrt{\gamma^{-2}u^2+\beta^2u_x^2-2u_xv+v^2}\\&=\frac{u}{1-\dfrac{u_xv}{c^2}}\sqrt{\gamma^{-2}+\beta^2\frac{u_x^2}{u^2}-2\frac{u_xv}{u^2}+\frac{v^2}{u^2}}\end{align}$$
If we take $u\le c$ then $\beta\le\frac{v}{u}$ with equivalence only when $u=c$ and so:
$$\begin{align}\frac{u'}{u}&\le\frac{1}{1-\dfrac{u_xv}{c^2}}\sqrt{1-\beta^2+\frac{u_x^2v^2}{u^4}-2\frac{u_xv}{u^2}+\frac{v^2}{u^2}}\\&=\frac{1}{1-\dfrac{u_xv}{c^2}}\sqrt{\left(1-\frac{u_xv}{u^2}\right)^2-\beta^2+\frac{v^2}{u^2}}\quad\text{with equivalence only when $u=c$}\\\therefore\frac{u'}{u}&\le1\quad\text{found by substituting in $u=c$}\end{align}$$
Thus, we only get the constant velocity if $u=c$.
As you can see from the above inequality the speed of light is a speed limit. Note also that we never mentioned the class of object we were calculating the velocity of, in fact, it need not even be a physical object but could be another frame of reference. This is important because this means that the speed limit is a property of spacetime not of the objects within spacetime.
Why Lorentz Transforms
First of all, because it is what we observe experimentally. But what other options are there? Well In General Relativity we generalise spacetime allowing it to take on the form of a (pseudo-)Riemannian manifold and so the invariant distance between points on the manifold is given by $\text{d}s^2=g_{\mu\nu}\text{d}x^{\mu}\text{d}x^{\nu}$ where $g_{\mu\nu}$ is the metric tensor. Now we can always choose the coordinates so that at a given point in spacetime the metric is diagonal with either $+1$ or $-1$ for each of the diagonal elements. As we observe space to be isotropic then we must give all the space coordinates the same sign and so without loss of generality we can make this sign negative. Thus, the metric must the form $\operatorname{diagonal}\left(\pm1,-1,-1,-1\right)$. In both cases, translations are allowed as we are using a differential distance. But if we take the negative sign we have locally Euclidean space and the only possible additional transforms are rotations and reflections - see the orthogonal group for more detail. But If we take the positive sign then we have locally Minkowski space and the only possible additional transformations are Lorentz transforms and reflections - see the Lorentz group for more details. Now we observe Lorentz transforms in experiments so we know which of the two possibilities we live in. It now should be clear that Lorentz transformations apply to the spacetime, not the objects within.
Why not multiple values of $c$
Now we know why we have Lorentz Transforms and we know that the group of Lorentz transforms for a given value of $c$ impose a speed limit of $c$. Now imagine if we allowed $c$ to take on more than one value. What would this imply? Let's say you are stood on a train platform and watch a train pass. On the train is a person walking towards the front of the train at a velocity $u$ relative to the train. Now, what speed do we see the person walking? Well we have established that the Lorentz transforms are property of spacetime and not the object so if we had multiple values of $c$ then each value of $c$ would give a different velocity you would observe for the person walking and as you can only observe a single velocity then there must only be a single value for $c$.
Now maybe you are not convinced that the Lorentz transformation has to be a property of spacetime so let's for a second consider what would happen if $c$ did depend on the object. Consider an object constructed of particles some of which were affected by one value of $c$ and some of which were affected by some other value of $c$. In some frame of reference, the object may be moving relative to the observer but it would appear to be unchanging relative to its comoving coordinates. Now a different observer would then observe the object tearing apart in their reference frame as the particles of different $c$ in this frame must have a relative velocity to each other! Now we don't observe this, but would it even be a consistent theory? Well, consider two observers separated in space moving relative to the object such that it appears not to be tearing apart. Now if one of the observers speeds up to move to the other observer the object would appear to them to tear apart, then when they reach the other observer and slow down the object will stop tearing apart further but will still be torn apart from their perspective. But the observer already there would argue that they see the object still in tact!
Massless Objects
Momentum is a 4-vector and so must transform via Lorentz transforms. This means that the form of the 3-part of the momentum is $\vec p=\gamma m\vec v$. Now we simply invert this equation to find $\vec v$:
$$\begin{align}p^2\left(1-\beta^2\right)&=m^2v^2\\v^2&=\frac{p^2c^2}{m^2c^2+p^2}\\\implies\vec v&=\frac{\vec pc}{\sqrt{m^2c^2+p^2}}\end{align}$$
Now set $m=0$ and trivially we see that $v=c$.