So I have a group of cubes grouped together, but whenever I rotate them the actual mesh of the cubes distorts and skews!
This happens when the parent object has non-uniform scaling (X, Y and Z scales are different). You can avoid this: create an empty game object and child your group of objects to it. Move your scripts to this (ex)empty object: rotating it will not skew the children, because its scale is the default (1,1,1).