Are there ways wherein an app would think it's operating on a different phone? That means the device ID, and IMEI and every information the app would be able to gather would be what I've pre-set. 

It would, for all intents and purposes, be as if it's installed on a different phone and it wouldn't know anything about the phone where it's actually installed in. 

Obviously this will require a phone to be rooted, which is the case already.
XprivacyLua an Xposed module can do that. See How to hide or spoof bootloader info from any app?
for an example but bear in mind that if the app in question uses Java code , then this module will fail. For a detailed view of module, read module description. Salient features which you seem to be looking for:



Read identifiers (fake build serial number, Android ID, advertising ID, GSF ID)

Read network data (hide cell info, Wi-Fi networks, fake Wi-Fi network name)

Read telephony data (fake IMEI, MEI, SIM serial number, voicemail number, etc)

Read account name (fake name, mostly e-mail address)




You can also use this Magisk module MagiskHide Props Config in addition to Xprivacy Lua if needed as a supplement . Primary purpose of the module is different and it is less potent compared to Xprivacy Lua because it is a Magisk module and unlike Xprivacy Lua cannot hook into app API's. I haven't used it , instead use Xprivacy Lua