So we found what the issue is, but not the why, so this is our theory:
using rows.size works in the UI, as it allows an implicit function call to work. Something changed in a windows update (Updates rolled on the original vm with the issue in december, my local machine in January, which is when my local started having the same issue) that no longer allows implicit function calls and now requires explicit function calls. Something we're assuming changed with a windows or java update that was rolled out, that won't allow the test runner to make that decision of is it a function or a property.
The fix was just making sure .size was called using .size(). But why this stopped working after 10 years of being fine is still unknown.