Someone just asked your help and this is how you reply? Nice effort.
You wrote the code that way. You should be able to explain why. "I don't really know what I'M doing" is a perfectly acceptable thing to say. Dismissing any attempts to elicit more information is not.
could this work by just making the message longer and having temperature and humidity in their own "data slots" and then on the receiving end just read both and multiply myMsg.data[2] and myMsg.data[3] by 256 to get the decimal values?
Yes, and no. You need 4 bytes in the array to hold the 4 bytes you need to send and receive. But, you are not sending decimal values. That implies floating point variables, not ints.
You can convert the floats you have to ints, as you are doing, use highByte() and lowByte(), or bitshifting and masking, to convert the signed and unsigned ints to bytes, stuff the bytes into the 4 elements of the array, send and receive the array, and then use bitshifting, or multiply by 256 and addition to recreate the ints that you can then convert back to floats.