For[..] returns Null. Code like
] (* a iteration*)
cost = vx/48;
is probably being interpreted as
For[..] * cost = vx/48;
Null * 0.0 = vx/48;
where cost = 0.0 on the first iteration.
After "..] (* a iteration*)", put a semicolon.
The "Tag Times in .. is Protected" almost always means things on the left-hand side of an assignment are being multiplied.