Please use the Insert Code Snippet button when adding code examples to a question, it makes them easier to find and read.
In Harlowe a single equals sign '=' means assignment and is equivalent to the TO operator. To compare two values you need to use either the double equals signs '==' or the IS operator. This means that your (if: $statchoice = 0) statement is actually first assigned the value 0 (zero) to the $statchoice story variable and then checking if the end result is true, which it isn't.
I suggest changing your examine to something like the following:
(link: "Strength + 5")[{
(set: $str to it + 5)
(set: $statchoice to it - 1)
(if: $statchoice is 0)[
(goto: "CharacterDev5")
]
}]