Let's say me and the photon are both moving above a stationary surface. I'm not in any flying object, my body is just moving. I'm traveling .9c relative to the stationary ground, and the photon is moving c relative to the ground. There are checkmarks on the ground indicating a certain distance, and I had two stopwatches. Every time the photon passes a checkmark I hit the button to record at what point past t=0 the photon passes that checkmark. I also hit my other stopwatch every time I pass a checkmark.
You have to say how you know where the photon is.
Lets modify this experiment a bit.
Instead of following a single photon, you are following a well-located pulse of light.
The pulse will spread out as it travels so we'll keep the experiment short enough in duration that this is not a problem.
We will define two reference frames -
A: the rest-frame of the ground. Observer - "Alice"
B: the rest-frame of you, "Bob", which has relative velocity of v wrt tA "Alice" and the ground.
The light travels at speed c in both frames.
At regular (say: 1 light-second, as measured by Alice) intervals there are light detectors stationary wrt Alice. When the pulse maximum intensity is detected, they emit a flash of light. In this way Bob and Alice can track the progress of the same pulse as it speeds away from them.
This should avoid a bunch of objections.
There are still a few technical considerations, but they are mainly engineering problems.
At the end wouldn't I be able to calculate my speed at .9c and the photon's at c, showing that the photon is really only moving .1c relative to me?
You will
always calculate your own speed as zero.
This is where you have to be careful in your language - when you want to work out a speed, you have to say who is doing the observing: what is the speed relative to? If you don't say, then the convention is that it is relative to yourself (or the last observer). Your speed relative to yourself is always zero.
You could work out that
Alice would calculate that you were doing 0.9c and that the light pulse is moving at 0.1c relative to you. That is correct.
But so what?
There is a habit you get into with Newtonian mechanics, where you pretend that something is "really" stationary and everything else moves. We end up thinking that there really is such a thing as absolute rest. In Galilean relativity that idea looks a bit shaky but Special relativity kills it stone dead.
If you want to say that you are "really" traveling at 0.9c, then you must be saying that Alice's POV is somehow special. But why pick hers? Why not someone elses? The choice is arbitrary.
Take a more extreme example:
If you and I were to head at 0.9c to A,
in opposite directions, then Alice would calculate our relative velocity to each other as 1.8c. Either of us could calculate that Alice would calculate that but, again, so what?
What doe that mean to either of us?