1. Did you run your Windoze binaries with WINE on the Linux box, or run them in a virtual machine (with some version of Windows as the VM guest system), or what? I'm not sure it matters in terms of answering the question, but it might.
2. Apparently your problem has multiple optimal solutions. When that happens, it's fairly random which one you get. I'm not sure about LPs, but with MIPs some of the CPLEX internal logic uses pseudorandom numbers. I don't know whether the same seed would be used on both machines, and even if so I don't know whether the pseudorandom numbers would be identical (since I don't know how they're being generated). Also, under some circumstances really small differences in floating point arithmetic might change some choices. If you're running multithreaded (and maybe even if you're not), slight differences in timing could make a difference, especially with a MIP (where node A might complete before node B on one machine but after node B on another).
This is all pretty speculative on my part. I can't say I'm shocked, though. As I said, when you have multiple optima ("optima" defined to within tolerances), it's anybody's guess which one you get.
#CPLEXOptimizers#DecisionOptimization