Is there a function that can fill down data to all empty cells from the row above?
If not, could anyone help me out with a Google Apps Script (or other solution) tha
Use copyTo. I'll mostly adapt the answer I found about this in here:
var sheet = SpreadsheetApp.getActiveSheet();
var originRange = sheet.getRange("A1:B1");
var target = sheet.getRange("A2:B");
originRange.copyTo(target);
This will auto-fill / expand the formulas in originRange to everything below, as with copy & paste.