Cant call from an Array on createGraphics canvas

I think your approach of using a separate p5.Graphics object to draw the shapes to on click is perfectly reasonable. The important thing is to understand the fundamentals of JavaScript: assigning a function to an object and then invoking it does not change the meaning of global symbols, it only changes the meaning of the this keyword. Which is why in my code sample I suggest passing the p5.Graphics as an argument to your functions.