Mathematical operations with given discrete frequency response function Let's say I have a given discrete frequency response function H(w) and corresponding n frequencies as MATLAB arrays, ranging from 0 to 512 Hz. 

If I do an n-point FFT on a discrete time domain signal x(k), how do I filter this frequency domain signal with given FRF? Is it just element-wise multiplication of the FFT array with the FRF array, followed by an IFFT to get the filtered signal y(k) in time domain or is it more complicated than that? 

To take it one step further, what if I only had a filtered signal y(k) and my discrete FRF, could I compute the original signal x(k)?
Is it just element-wise multiplication of the FFT array with the FRF
  array, followed by an IFFT


No. Filtering in the frequency domain is not trivial since it's equivalent to circular convolution (not linear) and will result in time domain aliasing. Google "overlap-add" or "overlap save" for a description of adequate algorithms


  To take it one step further, what if I only had a filtered signal y(k) and my discrete FRF, could I compute the original signal x(k)?


Sometimes. In essence what you are trying to do is an "inverse filter". This is only possible if the filter itself is invertible. In other words: information that's been lost in the filtering process cannot be recovered.  In practice that means you can't have any zero (or too small) amplitude in your filter and you need decent signal to noise at all relevant frequencies