I've been struggling to find the difference between those two structures, is one of them wrong or they are both right and have a difference in meaning/emphasis
俺が走るのが見た
俺が走るのを見た
の is a nominalizer, が is a subject marker, を is an object marker, and 見る is a plain transitive verb meaning "to see". 俺が走るのが見た is plain wrong because the act of running cannot see something.
However, there is another verb 見える which means "to be visible", "to be in sight", "can be seen". This can take an action as a subject. See: What is the difference between 見る and 見える?
You shouldn't view your sentence as
俺が走る + のを + 見た
Rather, it is
俺が走るの + を + 見た
From there, it is easily to see that の is just the 代名詞 that makes 走る(to run) into a noun 走るの(the action of running). The が and を are just being used normally here, and your sentence should be interpreted as such:
俺が走るの(The action of me running) を 見た(saw)。
(Someone) saw me running.
Obviously, "running" isn't a person and thus cannot see, 俺が走るのが見た wouldn't make any sense here. ("The action of me running saw???" What could an "action" see?)
P.S. you could, however, say 俺が走るのは見た. は does not specify it's the subject or object, but obviously it changes the emphasis(and thus the meaning to some extent) of the sentence by now making 俺が走るの the topic.