SIM800l - Modem to transmit data from SD card to API
OLED I2C Display
DHT22 Temperature sensor
My knowledge on embedded systems hardware and electronics is beginner to intermediate at best, I am more proficient with programming.
I am looking for an ARM microcontroller that is cheap and can be used as a ATMega328p replacement for my project. Ideally, I would want the ARM mcu to be easy to use with limited complexity to design on a custom PCB. Also preferably can be programmed from the Arduino IDE.
Atmega328p is pretty power efficient! I have them working down to <30uA in my projects and others have achieved even lower consumption. I have never managed to get ARM down that low, but I know others have.
For ARM microcontrollers, the SAMD21 models probably have highest Arduino compatibility. They are used in Arduino Zero, M0, IOT33 and many arduino compatibles such as the Xiao mentioned by @Grumpy_Mike.
You could also consider RP2040. Less mature, but dual cores and other interesting features, well documented by the Pi foundation.
EDIT: it seems there are now versions of the Xiao with SAMD21, RP2040 and nRF52840 MCUs!
You can take a look at the megaAVR-0 series or the AVR DA series. If you have some level shifting going on it might event make sense to take a look at the AVR DB series.