I think it is difficult to do. The ROM has to be patched in RAM to avoid turning on ROM again. This could be a few places or a lot of them. Also, a lot of RAM will be occupied by ROM code so there will be a lot less free memory. I don’t know if BASIC uses the top or bottom memory for variable storage. If it starts at the top it will have to be relocated and that needs additional patches.
I checked the variable storage method. It’s the same as C64 where BASIC strings are stored from top to bottom in memory so that needs to be patched, but it could be as easy as changing a single address somewhere.
the problem with doing it in RAM is you will probably need it in both banks eating 4000-ffff and 14000-1fff .I can't see anyway in which this would be practical. The Kernal always directly sets FFF0 so you would need to patch every location, BASIC however does expect the Pre config registers to be "just so", so you could modify them to use your RAM code. The smarter choice would be to use EXTERNAL ROM and then patch the code to switch to external ROM rather than KERNAL/BASIC internally. This would allow you to put everything on a cart and not touch the insides. Since the External ROM has a higher boot precedence you could easily use it to take over.