RIGHT() function returning blank result
The REVERSE is clearing our your string, not entirely sure why. 

EDIT: Here's why. In this sequence the string ' to ' is actually ' ot '. (Ken sniped it mid edit!)

Fixed:

SELECT
LEFT(CONVERT(VARCHAR(MAX), bp.bp_comment), CHARINDEX(' from ', CONVERT(VARCHAR(MAX), bp.bp_comment)) + 5) AS 'ChangeType'
,REPLACE(SUBSTRING(CONVERT(VARCHAR(MAX), bp.bp_comment), CHARINDEX(' from ', CONVERT(VARCHAR(MAX), bp.bp_comment)) + 5, CHARINDEX(' to ', CONVERT(VARCHAR(MAX), bp.bp_comment)) - CHARINDEX(' from ', CONVERT(VARCHAR(MAX), bp.bp_comment)) - 5), '"', '') AS 'ChangeFrom'
,REPLACE(RIGHT(CONVERT(VARCHAR(MAX), bp.bp_comment), CHARINDEX(' ot ', REVERSE(CONVERT(VARCHAR(MAX), bp.bp_comment)))), '"', '') AS 'ChangeTo'
FROM
bug_posts bp


Here's an alternative approach.

SELECT LEFT( CONVERT( varchar( max ) , bp.bp_comment ) , CHARINDEX( ' from ' , CONVERT( varchar( max ) , bp.bp_comment ))
                                                   + 5 )AS 'ChangeType' , 
   REPLACE( SUBSTRING( CONVERT( varchar( max ) , bp.bp_comment ) , CHARINDEX( ' from ' , CONVERT( varchar( max ) , bp.bp_comment ))
                                                                 + 5 , CHARINDEX( ' to ' , CONVERT( varchar( max ) , bp.bp_comment ))
                                                                     - CHARINDEX( ' from ' , CONVERT( varchar( max ) , bp.bp_comment ))
                                                                     - 5 ) , '"' , '' )AS 'ChangeFrom' , 
   REPLACE(REPLACE(RIGHT(bp.bp_comment, LEN(bp.bp_comment) - CHARINDEX(' to ', CONVERT(VARCHAR(MAX), bp.bp_comment))), '"', ''), 'to ', '') AS 'ChangeTo'
 FROM bug_posts bp;