Will assigning a value to the W-reg in PIC16F84A during an interrupt, save it after the interrupt is disabled?
The answer is in the datasheet in section 2.4.
https://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf
When an interrupt occurs the PCLAT and PCLATH are stored on the stack.  It doesn't day anything about WREG being stored.  If you assign a value to WREG in an interrupt it the value will persist when the interrupt returns.
The PIC16F84A doesn't have a notion of a stack in memory.  It only has a hardware return address stack for interrupts and function calls.  In fact if you look in Table 7-2 (PIC16CXXX INSTRUCTION SET) there are no push and pop instructions.  You can however use the INDF register for the purposes of implementing a stack in memory.
I would point out though, that you are waiting in a loop for an interrupt to occur.  You could just as easily test the interrupt flags directly without actually going into an interrupt, and you will probably achieve the same result.