Off hand, these are the requirements I foresee, in no particular order.
Two arrays. A larger one generated from a text INI file, and a smaller backup one generated by the player in game by physically selecting creatures/NPCs to be removed.
A set of commands to walk through all the creature/NPCs in the players active cells and check their FormID against the arrays.
A non-playable token to mark already scanned creatures/NPCs
A script to check the inventories of creatures/NPCs chosen for removal in an attempt to see if particular items in their inventory need to be moved to the replacement creature (this is likely to be buggy as hell, so)
A community generated exception list of creatures/NPCs that can't be removed without breaking quests. A separate ESP file would have to be made to fix these issues.
Commands to locate the position of the chosen creatures/NPCs, and their aggression/disposition/combat status toward the player.
Clean way of disposing of the chosen creature/NPC
Script to replace the chosen creature/NPC with the matching one from the arrays, add necessary inventory, modify position/aggression/disposition/combat status to match removed creature/NPC.
Possibly a way to permanently replace levelled/creature/NPC lists of spawn points with new ones in order to avoid having to repeat process on return to same cell?
What do we think? Possible? Other needed elements?