I think I way over-analyzed this. The easiest way to do what I want is with a simple MapThread:
Ns = {"Co60", "Co61", "Co62", "Co63"};
(*Set the array of constants up*)
\[CapitalGamma]Vals =
MapThread[ToExpression[StringJoin[{"\[CapitalGamma]", #1}]] &, {Ns}]
(*Set them all to 0*)
MapThread[{#1 = 0} &, {\[CapitalGamma]Vals}]
(*Define the useful constants*)
\[CapitalGamma]Co60 = 20
But I can see how it would be useful to use indexed variables here. It certainly looks quite a bit cleaner:
indexedVariable[var_, indicesValues__] :=
With[{dict = List[indicesValues]},
Scan[(var[#[[1]]] = #[[2]]) &, dict]];
indexedVariable[dict, MapThread[{#1, 0} &, {Ns}]]
Thanks for the suggestion!