If you specify the flow name in the command line it will always load that flow & therefore hostname is irrelevant.
Usage: node-red [-v] [-?] [--settings settings.js] [--userDir DIR]
[--port PORT] [--title TITLE] [--safe] [flows.json]
-p, --port PORT port to listen on
-s, --settings FILE use specified settings file
--title TITLE process window title
-u, --userDir DIR use specified user directory
-v, --verbose enable verbose output
--safe enable safe mode
-?, --help show this help
Documentation can be found at http://nodered.org
e.g. start node-red and specify the flow file... node-red myflow.json
Edit the settings.js file...
// The file containing the flows. If not set, it defaults to flows_<hostname>.json
If you rename the old file as that name and start node-red what does it say then? If it says it is creating a new file then Deploy and see if it overwrites the file. I would put a small wager on the possibility that either you are looking in the wrong folder or there is a small error in the filename. Remember that if you are on a Linux system then file names are case sensitive.
I'm trying to avoid post cloning futzing around beyond changing the hostname, which is not always necessary, and then I don't have any problem.
Steve-Mci's suggestion of editing the flows file to specify the original flowFile name seems perfect as I already have to edit the settings.js file to add some require() statements when I initially setup the system that I plan on cloning.
If you're cloning the system, why not just use the same flow file name on every system? As suggested, rename the flows file to e.g. flows.json and edit the same name to settings.js (before cloning). Then you'd have NR running straight away on a cloned system with or without changing the hostname.