Does anyone know if there is any way to build custom transactions? I want to control exactly which addresses are used as inputs and I want to control what address the change is going to. Mostly though, the change address is the important part, so that I don't inadvertently link my addresses together.
You may try Electrum. You can control which addresses you spend from with the 'freeze' feature (only unfreezed addresses will be used). I'm not sure about the change address though. There's a setting under 'Preferences' (use change address) but not sure what this will do if unchecked.