Ready queue is a linked list of PCBs- so the scheduler gets a PCB. Now, PCB will have all information about a process.
https://en.wikipedia.org/wiki/Process_control_block
As part of this data will be the code location of the process. When a process is created, it is assigned memory for the code, data, stack and heap section. Now, the CPU will start executing instructions from the code section from the PC pointed value.
How process "memory usage" changes during execution? Because the process is using dynamic memory allocation. Write a C code with no dynamic memory allocation- that is no function calls and simply running a nested loop a million or more times. There won't be a change in memory usage. Memory usage changes during function calls- dynamic memory allocation on stack (in languages like C) and on dynamic memory allocation on heap.