You need to use a specific version of X360CE that supports Xinput.dll saving (There are specific ones that Halo 2 will use, if in doubt just check em all)
You'll also need to check that each button on said controller is recognised by windows as a unique input, best way to check this will be to...