I'm not sure where you're getting $16^{256}$. SHA-256 produces a hash that
is $256$ bits long, so there are $2^{256}$ possibilities.
So, let us consider all $256$-bit inputs. Will they map onto the set of
$256$-bit SHA-256 outputs, one-to-one, no collisions? Almost certainly
not.
If we were encrypting $256$-bit blocks, then yes, they would, because by
definition encryption has to be reversible, so encryption algorithms do
map things one-to-one. But secure hash algorithms are not designed in
this way.
So, instead of thinking there are $2^{256}$ inputs, and $2^{256}$ outputs, and
therefore they're one-to-one, instead think that you are selecting from
a set of $2^{256}$ items, randomly, with replacement. There will probably be
many collisions. Some inputs will map to the same output.
And, of course, once you start considering longer inputs, there are more
inputs than outputs and collisions are inevitable, by the pigeonhole
principle.
However, this does not mean that SHA-256 is broken. Not at all. This
problem of collisions is inherent in any secure hashing system, but
still, we use secure hashes and they work. We wouldn't be able to buy
things online if they didn't work.
In theory, there are collisions, yes. But a hash is only broken if there
is a practical way to generate collisions on purpose. Thus far, no one
has published any such attack on SHA-256, or any of the SHA-2 family of
hashes.