Groovy is a lazy version of Java (ok, there are probably more accurate definitions).
SmartThings requires a Device Type Handler to be written in Groovy with some special definitions at the top and a few mandatory methods, and the rest is up to you. The ThingShield passes plain text messages to / from SmartThings and the Groovy code parses these messages and acts upon them (and vice versa: if you send an Command relayOn(2) to the Device Handler, all it needs to do is convert this to a message “Relay #2 on.” to send to the ThingShield / Arduino, which, in turn, sets a pin high or low to activate the #2 Relay.
Object Oriented languages like Java and Groovy are easy once you grasp the concept … some folks like the shortcut versions (i.e., Groovy) because you can skip over a lot of implied code, but, personally, I find that makes it more confusing.
But serious; if you want this project to go easy, just PM me. I don’t know what your experience with Arduino is either. Gotta start with a simple blinking light project, then a single relay with an LED, and so on, baby steps until you can handle a multiple-Relay board. It’s a short trip, though, even if baby steps required.