Your question is too broad but I will offer you some basic information.
All of the things you listed are doable and pretty commonly worked in. My living is mostly in immobilizers, keys and ecu's so I am pretty familiar with those if you have something specific you want to ask about but if your just wanting to learn overall then its a long road of self teaching. Mostly you learn from experience and comparing files. You need to start with tools that do some of the things you want to do first, so you can use them and then compare what they have done. After awhile you become pretty familiar with the eeprom dumps and will notice faults and can repair them of pull out/change what you need with out the tools. Some good tools. Scorpio LK's Tango, Orange5, eldb's Xprog, VVDI2, KESS, KTAG, TL866, Abrites AVDI, Carprog, AutohexII. Avoid cloned tools and stick with the originals .
As an example with bmw since you named them. All CAS, CAS2 & CAS3 modules use secured 9s12 mcu's for flash and eeprom. They are pretty basic once you bypass the security of the 9s12 mcu. The data your looking for (VIN,ISN,IMMO,Sync data, etc) are not encrypted at all. The newer CAS3+ / CAS4 do have some extra encryption but can easily be decoded by pulling additional information from DME or a working key.
The FRM's I haven't done a whole lot with but mostly for these its always a problem resetting the fault counter or a problem with the emulated eeprom getting wiped out. Usually you can retrieve it and redo it from pulling the D-flash. Many rebuild them manually from experience, I just use special software on these tho.