The problem you face here is that Function does not evaluate your system variable. It takes it as it is without making the transformation of system -> x+y+z. You can see this in the output directly:
Function[{x, y, z}, system]
(* Function[{x, y, z}, system] *)
This comes from how Function treats its arguments. You can prevent this by temporary using another function (here List) which doesn't make this and then replacing the List with Functions:
system = x + y + z;
systemFunction = Function @@ {{x, y, z}, system}
Now systemFunction[1, 1, 1] gives 3 as expected.
Please note, that this is only one (and not the best) way to do it. To understand how all this works in Mathematica you should read about Attributes, HoldAll and injecting code. If you don't find anything searching this site, I'm sure we can collect some useful links.