1. I remember a few other Linux users had the same problem, at least one can be found a bit further up in this thread. Don't know if he managed to find a solution.
It should automatically keep the calibration (as well as other settings) in Linux as well as on all other platforms. You can alter some values in the custom settings menu and see if those are being saved. If not, perhaps you can investigate so that there is no permission issue that keeps it from saving (I'm not familiar how these things work in Linux). (In linux I believe the Playerprefs are stored under "/home/your user/.config/unity3d").
Good thing that you at least managed to get it calibrated properly. As you probably noticed - if one axis is reversed, you can simply reverse it in the trim settings (Click "Calibrate Controller" on the main menu and then "Skip to trim settings")
My guess is that the whole thing has to do with the joystick drivers on Linux not being consistent in some way.
Some Linux users seem to have success using this program: https://github.com/Vantskruv/wejoy
2. In Windows there's a command line parameter -"adapter N" that can be used to select which monitor you want to run it. That only works on Windows though as far as I know. Hopefully someone who is more knowledgeable in Linux will be able to chime in.
( Here is a list of the runtime command line parameters: https://docs.unity3d.com/Manual/CommandLineArguments.html )