Problem solved - I was missing a step. In order to use a properties bundle you need to use a MessageResolver and call it like so:
MessageResolver messageResolver = new MessageBuilder().error().source(source).code("validation.message.property.here").defaultText(errorMessage).build();
messageResolver.resolveMessage(messageSource, Locale.ENGLISH);
return messageResolver;
Where your messageSource is your Spring bean with your message properties bundles, defined in your application context:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages</value>
<value>ValidationMessages</value>
</list>
</property>
</bean>
Documentation on MessageResolver is here.