When you apply criteria to a field in the FROM clause of a RIGHT JOIN, you've effectively undone your RIGHT JOIN. So, in the query you posted you have a regular INNER JOIN. Meaning only matching fields between your two tables will be returned.
Also, it might be possible that you have 2 records that have the same Cases.reference_number, Fddvs.field_name, Fddvs.display_text values. When you GROUP BY you roll data up and essentially elminate duplicated records, so that's a possibility as well.
So, you have 2 things working against you that may be the issue. To help, you really need to tell us what you are trying to accomplish. There's really no reason to have that GROUP BY clause in there if you want all results, nor should you have a RIGHT JOIN if you need to apply criteria to a field in a table that isn't required.
My advice is to post 2 sets of data for us:
A. Starting sample data from your tables. Include table and field names and enough sample data to cover all cases.
B. Expected results of your query. Based on the data you provide in A, show us what you expect your query to return.