If you want to run CP/M on an original Sinclair Spectrum 48k, there are two issues you need to overcome first:
The lower 16k of the memory map is occupied by ROM, so you can't easily have the TPA starting at 0100h.
This can be overcome relatively easily: The ZX Spectrum is prepared to map out its ROM on the /ROMCS signal pulled high. Thus, you can replace it with RAM, even without modifying anything internally.
Just in the middle of the TPA you want, the ZX Spectrum has its screen memory in the memory map (starting at 04000h). If you want to have contiguous memory for the TPA, you need to build some sort of shadow memory "behind" the screen memory. This, unfortunately, is not possible without internal modifications.
The most popular (rather: the only one I know) expansion that made the 48k ZX Spectrum capable of running CP/M was the Czech LEC memory expansion system by Jiri Lamac. This offered an allRAM memory expansion to between 80k and 528k for the rubber-keyed ZX Spectrum (memory beyond 64k could be used as a RAM disk). There was also an adapted version of CP/M 2.2 for this setup. The LEC expansion supplies a page 0 of RAM that shadows both the ROM and the video memory (0-32k). There were BIOS adaptations to the BETA disk interface to allow floppy disk access (The expansion came with support for the ZX Interface 1 and Microdrives, so, allowed you to run CP/M with those whirring drives...)
Because you had to work around the screen memory anyways, there was a lot of reasoning to solve both of the above issues in one single hardware mod rather than solving only the ROM issue. So, I'm not aware of any CP/M version for the ZX Spectrum that would implement the 4000h+ TPA like you mentioned. Well, you could probably push the beginning of the TPA even further up behind screen memory to avoid hardware changes (to 05000h, for example), but that would reduce the amount of available memory to applications to a really impractical amount.
Fitting the LEC memory expansion wasn't an easy feat because all of the lower memory had to be removed and replaced with 41256 or 4164 memory chips. In addition, some bits of support logic had to be installed. It's a "friendly" expansion, because the machine can still be used as a standard 48k ZX Spectrum even after the changes provided the proper software is loaded (To provide a standard ZX ROM and "lock" the banking registers).
If you're interested, there's a re-implementation of the LEC approach on a new ZX Spectrum mainboard as a user project that also adds quite a number of improvements and additions (like an AY sound chip, a ROM expansion and firmware extensions that allow the ZX Spectrum to start with a choice of personalities).
There were quite a number of ZX Spectrum compatibles developed behind the iron curtain (e.g. Pentagon or Scorpion) that were allRAM-capable. Some of these did come with a CP/M implementation as well, but this is not really answering your question